首页 > Web开发 > 详细

Web性能优化——缓存

时间:2016-03-06 20:44:20      阅读:272      评论:0      收藏:0      [点我收藏+]

技术分享

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 }

分布式的体现:

技术分享

 

Web性能优化——缓存

原文:http://www.cnblogs.com/cathyqq/p/5248403.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!