Wednesday 30 July 2014

EhCache

Here's a simple example to demonstrate the usage of EhCache

ehcache.xml
 
 <?xml version="1.0" encoding="UTF-8"?>
 <ehcache>
  <defaultCache maxElementsInMemory="10000" eternal="false"
  timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true"
  diskSpoolBufferSizeMB="30" maxElementsOnDisk="10000000"
  diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
  memoryStoreEvictionPolicy="LRU" />
  <cache name="newsCache" maxElementsInMemory="1"
  maxElementsOnDisk="1" eternal="false" overflowToDisk="true"
  diskSpoolBufferSizeMB="20" timeToIdleSeconds="300" timeToLiveSeconds="600"
  memoryStoreEvictionPolicy="LRU" />
 </ehcache>
TestEhCache.java
 import com.newslive.actions.cache.EChache.EHCacheManger;  
 import net.sf.ehcache.Cache;  
 import net.sf.ehcache.CacheManager;  
 import net.sf.ehcache.Element;  
 import java.net.URL;  
 import java.util.Iterator;  
 import java.util.List;  
 /**  
  * Created by mami01 on 11/03/14.  
  */  
 public class TestEhCache {  
   public static void main(String[] args) {  
     CacheManager manager = new CacheManager("ehcache.xml");  
     Cache newsCache = manager.getCache("newsCache");  
     newsCache.put(new Element("2","Hello"));  
     newsCache.put(new Element("3", "Bye"));  
     displayElementInCache(newsCache);  
     getElementFromCache(newsCache, "3");  
     displayElementInCache(newsCache);  
     getElementFromCache(newsCache, "4");  
     displayElementInCache(newsCache);  
     getElementFromCache(newsCache, "3");  
     getElementFromCache(newsCache, "4");  
     getElementFromCache(newsCache, "3");  
   }  
   private static void displayElementInCache(Cache newsCache) {  
     System.out.println("Elements in the Cache");  
     List<String> list = newsCache.getKeys();  
     Iterator<String> itr = list.iterator();  
     while (itr.hasNext()) {  
       String key = itr.next();  
       Element ele = newsCache.get(key);  
       System.out.println(ele.getObjectKey() + " " + ele.getObjectValue());  
     }  
   }  
   private static void getElementFromCache(Cache newsCache, String key) {  
     Element element = newsCache.get(key);  
     if (null != element) { // Cache Hit  
       System.out.println("Cache Hit - " + element.getObjectValue());  
     } else { // Cache Miss  
       // Retreive from DB and add this to cache  
       System.out.println("Cache Miss - Fetching from DB ...");  
       newsCache.put(new Element(key,"default"));  
     }  
   }  
 }  

No comments:

Post a Comment