zoukankan      html  css  js  c++  java
  • java memcache

    引用:http://blog.csdn.net/einarzhang/article/details/6064092

    Memcache的介绍有很多,这里给出如何在Java中应用Memcache的基本方法

     

      1 安装Memcache服务器(windows)

    下载windowsMemcache安装包,如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
    1. public class MemcacheManagerForGwhalin {  
    2.       
    3.     // 构建缓存客户端  
    4.     private static MemCachedClient cachedClient;  
    5.     // 单例模式实现客户端管理类  
    6.     private static MemcacheManagerForGwhalin INSTANCE = new MemcacheManagerForGwhalin();  
    7.   
    8.     private MemcacheManagerForGwhalin() {  
    9.         cachedClient = new MemCachedClient();  
    10.         //获取连接池实例  
    11.         SockIOPool pool = SockIOPool.getInstance();  
    12.   
    13.         //设置缓存服务器地址,可以设置多个实现分布式缓存  
    14.         pool.setServers(new String[]{"127.0.0.1:11211"});  
    15.           
    16.         //设置初始连接5  
    17.         pool.setInitConn(5);  
    18.         //设置最小连接5  
    19.         pool.setMinConn(5);  
    20.         //设置最大连接250  
    21.         pool.setMaxConn(250);  
    22.         //设置每个连接最大空闲时间3个小时  
    23.         pool.setMaxIdle(1000 * 60 * 60 * 3);  
    24.   
    25.         pool.setMaintSleep(30);  
    26.   
    27.         pool.setNagle(false);  
    28.         pool.setSocketTO(3000);  
    29.         pool.setSocketConnectTO(0);  
    30.         pool.initialize();  
    31.     }  
    32.       
    33.     /** 
    34.      * 获取缓存管理器唯一实例 
    35.      * @return 
    36.      */  
    37.     public static MemcacheManagerForGwhalin getInstance() {  
    38.         return INSTANCE;  
    39.     }  
    40.   
    41.     @Override  
    42.     public void add(String key, Object value) {  
    43.         cachedClient.set(key, value);  
    44.     }  
    45.   
    46.     @Override  
    47.     public void add(String key, Object value, int milliseconds) {  
    48.         cachedClient.set(key, value, milliseconds);  
    49.     }  
    50.   
    51.     @Override  
    52.     public void remove(String key) {  
    53.         cachedClient.delete(key);  
    54.     }  
    55.   
    56.     @Override  
    57.     public void remove(String key, int milliseconds) {  
    58.         cachedClient.delete(key, milliseconds, new Date());  
    59.     }  
    60.   
    61.     @Override  
    62.     public void update(String key, Object value, int milliseconds) {  
    63.         cachedClient.replace(key, value, milliseconds);  
    64.     }  
    65.   
    66.     @Override  
    67.     public void update(String key, Object value) {  
    68.         cachedClient.replace(key, value);  
    69.     }  
    70.       
    71.       
    72.     @Override  
    73.     public Object get(String key) {  
    74.         return cachedClient.get(key);  
    75.     }  
    76.   
    77. }  

    Spy方式调用如下:

     

     
    1. public class MemcacheManagerForSpy implements IMemcacheManager {  
    2.   
    3.   
    4.     //缓存客户端  
    5.     private MemcachedClient memcacheCient;  
    6.     //Manager管理对象,单例模式  
    7.     private static MemcacheManagerForSpy INSTANCE = new MemcacheManagerForSpy();   
    8.       
    9.     private MemcacheManagerForSpy() {  
    10.         try {  
    11.                 memcacheCient = new MemcachedClient(new InetSocketAddress("127.0.0.1",11211));  
    12.         } catch (IOException e) {  
    13.             e.printStackTrace();  
    14.         }  
    15.     }  
    16.       
    17.     public static MemcacheManagerForSpy getInstance() {  
    18.         return INSTANCE;  
    19.     }  
    20.       
    21.     @Override  
    22.     public void add(String key, Object value, int milliseconds) {  
    23.         memcacheCient.add(key, milliseconds, value);  
    24.     }  
    25.   
    26.     @Override  
    27.     public void add(String key, Object value) {  
    28.         memcacheCient.add(key, 3600, value);  
    29.           
    30.     }  
    31.   
    32.     @Override  
    33.     public void remove(String key, int milliseconds) {  
    34.         memcacheCient.delete(key);  
    35.     }  
    36.   
    37.     @Override  
    38.     public void remove(String key) {  
    39.         memcacheCient.delete(key);  
    40.     }  
    41.   
    42.     @Override  
    43.     public void update(String key, Object value, int milliseconds) {  
    44.         memcacheCient.replace(key, milliseconds, value);  
    45.     }  
    46.   
    47.     @Override  
    48.     public void update(String key, Object value) {  
    49.         memcacheCient.replace(key, 3600, value);  
    50.     }  
    51.   
    52.     @Override  
    53.     public Object get(String key) {  
    54.         return  memcacheCient.get(key);  
    55.     }  
    56. }  
  • 相关阅读:
    在UI上使用BackgroundWorker
    洛谷训练新手村之“洛谷的第一个任务”题解
    洛谷训练新手村之“循环!循环!循环!”题解
    洛谷训练新手村之“BOSS战入门综合练习1”题解
    洛谷训练新手村之“过程函数与递归”题解
    洛谷P1720 月落乌啼算钱 题解 斐波那契数列/特征方程求解
    洛谷训练新手村之“顺序与分支”题解
    洛谷训练新手村之“数组”题解
    [转]特征方程
    洛谷训练新手村之“简单字符串”题解
  • 原文地址:https://www.cnblogs.com/sode/p/2470019.html
Copyright © 2011-2022 走看看