Ehcache:
ehcache的配置文件ehcache.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <ehcache> 3 4 <diskStore path="java.io.tmpdir"/> 5 6 <defaultCache 7 maxElementsInMemory="10000" 8 eternal="false" 9 timeToIdleSeconds="120" 10 timeToLiveSeconds="120" 11 overflowToDisk="true" 12 /> 13 14 <cache 15 name="mycache" 16 maxElementsInMemory="10000" 17 eternal="false" 18 timeToIdleSeconds="30" 19 timeToLiveSeconds="30" 20 overflowToDisk="true" 21 /> 22 23 </ehcache>
ehcache的使用:
cache文件:
1 public interface Cache { 2 3 public void set(String key,Object value); 4 public Object get(String key); 5 public void remove(String key); 6 }
cacheWithEhcache.java
1 import net.sf.ehcache.CacheManager; 2 import net.sf.ehcache.Ehcache; 3 import net.sf.ehcache.Element; 4 5 public class CacheWithEhCache implements Cache{ 6 7 private static CacheManager cacheManager = new CacheManager(); 8 private static final String CACHE_NAME = "mycache";//mycache是xml配置文件里配的缓存的名字 9 10 private Ehcache getCache() { 11 return cacheManager.getEhcache(CACHE_NAME); 12 } 13 14 @Override 15 public void set(String key, Object value) { 16 Element element = new Element(key, value); 17 getCache().put(element); 18 } 19 20 @Override 21 public Object get(String key) { 22 Element element = getCache().get(key); 23 if(element == null) { 24 return null; 25 } else { 26 return element.getObjectValue(); 27 } 28 } 29 30 @Override 31 public void remove(String key) { 32 getCache().remove(key); 33 } 34 35 }
分布式缓存Memcached:
mecacheed的客户端:
cacheWithMemcached.java
1 import java.io.IOException; 2 3 import net.spy.memcached.AddrUtil; 4 import net.spy.memcached.MemcachedClient; 5 6 public class CacheWithMemCached implements Cache { 7 8 private static MemcachedClient client = buildClient(); 9 10 private static MemcachedClient buildClient() { 11 try { 12 return new MemcachedClient(AddrUtil.getAddresses("127.0.0.1:11211")); 13 } catch (IOException e) { 14 e.printStackTrace(); 15 return null; 16 } 17 } 18 19 @Override 20 public void set(String key, Object value) { 21 client.set(key, 30, value); 22 } 23 24 25 @Override 26 public Object get(String key) { 27 return client.get(key); 28 } 29 30 @Override 31 public void remove(String key) { 32 client.delete(key); 33 } 34 35 }
分布式的体现:
原文:http://www.cnblogs.com/cathyqq/p/5248403.html