设为首页 收藏本站
查看: 1099|回复: 0

[经验分享] java memcache

[复制链接]

尚未签到

发表于 2015-8-31 08:16:56 | 显示全部楼层 |阅读模式
  引用:http://blog.iyunv.com/einarzhang/article/details/6064092
Memcache的介绍有很多,这里给出如何在Java中应用Memcache的基本方法

  1 安装Memcache服务器(windows)
下载windows版Memcache安装包,如memcached-1.2.6-win32-bin.zip,解压到指定位置,比如(D://memcache),打开dos命令行,输入以下两个命令即可启动Memcache服务。
D:/memcache/memcached.exe -d  install
D:/memcache/memcached.exe -d  start


  2 下载Java版本的memcache客户端(以下列出常用的几种)。
spymemcached :
http://code.google.com/p/spymemcached/
gwhalin / Memcached-Java-Client   
   https://github.com/gwhalin/Memcached-Java-Client/downloads
Jcache
http://code.google.com/intl/zh-CN/appengine/docs/java/memcache/usingjcache.html



  3 下面给出两种方式调用Memcache
     
  gwhalin / Memcached-Java-Client调用方式如下:
  




[java:nogutter] view plaincopy
http://static.blog.iyunv.com/scripts/ZeroClipboard/ZeroClipboard.swf

  • public class MemcacheManagerForGwhalin {  
  •       
  •     // 构建缓存客户端  
  •     private static MemCachedClient cachedClient;  
  •     // 单例模式实现客户端管理类  
  •     private static MemcacheManagerForGwhalin INSTANCE = new MemcacheManagerForGwhalin();  
  •   
  •     private MemcacheManagerForGwhalin() {  
  •         cachedClient = new MemCachedClient();  
  •         //获取连接池实例  
  •         SockIOPool pool = SockIOPool.getInstance();  
  •   
  •         //设置缓存服务器地址,可以设置多个实现分布式缓存  
  •         pool.setServers(new String[]{"127.0.0.1:11211"});  
  •          
  •         //设置初始连接5  
  •         pool.setInitConn(5);  
  •         //设置最小连接5  
  •         pool.setMinConn(5);  
  •         //设置最大连接250  
  •         pool.setMaxConn(250);  
  •         //设置每个连接最大空闲时间3个小时  
  •         pool.setMaxIdle(1000 * 60 * 60 * 3);  
  •   
  •         pool.setMaintSleep(30);  
  •   
  •         pool.setNagle(false);  
  •         pool.setSocketTO(3000);  
  •         pool.setSocketConnectTO(0);  
  •         pool.initialize();  
  •     }  
  •       
  •     /**
  •      * 获取缓存管理器唯一实例
  •      * @return
  •      */  
  •     public static MemcacheManagerForGwhalin getInstance() {  
  •         return INSTANCE;  
  •     }  
  •   
  •     @Override  
  •     public void add(String key, Object value) {  
  •         cachedClient.set(key, value);  
  •     }  
  •   
  •     @Override  
  •     public void add(String key, Object value, int milliseconds) {  
  •         cachedClient.set(key, value, milliseconds);  
  •     }  
  •   
  •     @Override  
  •     public void remove(String key) {  
  •         cachedClient.delete(key);  
  •     }  
  •   
  •     @Override  
  •     public void remove(String key, int milliseconds) {  
  •         cachedClient.delete(key, milliseconds, new Date());  
  •     }  
  •   
  •     @Override  
  •     public void update(String key, Object value, int milliseconds) {  
  •         cachedClient.replace(key, value, milliseconds);  
  •     }  
  •   
  •     @Override  
  •     public void update(String key, Object value) {  
  •         cachedClient.replace(key, value);  
  •     }  
  •       
  •       
  •     @Override  
  •     public Object get(String key) {  
  •         return cachedClient.get(key);  
  •     }  
  •   
  • }  
  
  
Spy方式调用如下:




  • public class MemcacheManagerForSpy implements IMemcacheManager {  
  •   
  •   
  •     //缓存客户端  
  •     private MemcachedClient memcacheCient;  
  •     //Manager管理对象,单例模式  
  •     private static MemcacheManagerForSpy INSTANCE = new MemcacheManagerForSpy();   
  •       
  •     private MemcacheManagerForSpy() {  
  •         try {  
  •                 memcacheCient = new MemcachedClient(new InetSocketAddress("127.0.0.1",11211));  
  •         } catch (IOException e) {  
  •             e.printStackTrace();  
  •         }  
  •     }  
  •       
  •     public static MemcacheManagerForSpy getInstance() {  
  •         return INSTANCE;  
  •     }  
  •       
  •     @Override  
  •     public void add(String key, Object value, int milliseconds) {  
  •         memcacheCient.add(key, milliseconds, value);  
  •     }  
  •   
  •     @Override  
  •     public void add(String key, Object value) {  
  •         memcacheCient.add(key, 3600, value);  
  •          
  •     }  
  •   
  •     @Override  
  •     public void remove(String key, int milliseconds) {  
  •         memcacheCient.delete(key);  
  •     }  
  •   
  •     @Override  
  •     public void remove(String key) {  
  •         memcacheCient.delete(key);  
  •     }  
  •   
  •     @Override  
  •     public void update(String key, Object value, int milliseconds) {  
  •         memcacheCient.replace(key, milliseconds, value);  
  •     }  
  •   
  •     @Override  
  •     public void update(String key, Object value) {  
  •         memcacheCient.replace(key, 3600, value);  
  •     }  
  •   
  •     @Override  
  •     public Object get(String key) {  
  •         return  memcacheCient.get(key);  
  •     }  
  • }  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106529-1-1.html 上篇帖子: Windows Memcache安装 下篇帖子: memcache 开机启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表