使用Xmemcached客户端操作Memcached缓存系统

来源:互联网 发布:淘宝假酒处罚规定 编辑:程序博客网 时间:2024/05/25 16:01

memcache常用Java客户端有三个:

1、memcached client for java   

2、spymemcached  

3、xmemcached

据说 xmemcached 上述三者中最优秀的。

 

xmemcached简单使用示例:

Java代码  收藏代码
  1. import java.util.ArrayList;  
  2. import java.util.HashMap;  
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import net.rubyeye.xmemcached.MemcachedClient;  
  6. import net.rubyeye.xmemcached.MemcachedClientBuilder;  
  7. import net.rubyeye.xmemcached.XMemcachedClientBuilder;  
  8. import net.rubyeye.xmemcached.auth.AuthInfo;  
  9. import net.rubyeye.xmemcached.command.BinaryCommandFactory;  
  10. import net.rubyeye.xmemcached.utils.AddrUtil;  
  11.   
  12. public class MemcacheTest {  
  13.   
  14.     public static void main(String[] args){  
  15.           
  16.         String addr1 = "10.68.6.115:11212";  
  17.         MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(addr1));  
  18.           
  19.         /** 
  20.          * 同时使用多个memcache服务时,多个服务地址之间以空格分隔. 
  21.          * 后面的int数组用于指定每个server的权重,权重大则存取压力大。 
  22.          * String addr2 = "10.68.6.115:11211 10.68.6.115:11212"; 
  23.          */  
  24.         //MemcachedClientBuilder builder   
  25.         //  = new XMemcachedClientBuilder(AddrUtil.getAddresses(addr2),new int[]{1,1});  
  26.   
  27.         //设置账号密码  
  28.         //如果memcache启用了sasl认证,但是客户端未提供有效账号密码,则抛出异常:  
  29.         //Authentication required or not successful  
  30.         //builder.addAuthInfo(AddrUtil.getOneAddress("10.68.6.115:11211"), AuthInfo.plain("root", "123456"));  
  31.         //builder.addAuthInfo(AddrUtil.getOneAddress("10.68.6.115:11212"), AuthInfo.plain("root", "123456"));  
  32.   
  33.         //使用二进制文件  
  34.         builder.setCommandFactory(new BinaryCommandFactory());  
  35.   
  36.         MemcachedClient client;  
  37.         try {  
  38.             client = builder.build();  
  39.               
  40.             //设置连接超时时间(2分钟),默认1分钟,单位毫秒  
  41.             client.setConnectTimeout(2*60*1000);  
  42.             //设置操作超时时间(3秒),默认1秒,单位毫秒  
  43.             client.setOpTimeout(3*1000);  
  44.               
  45.             /**  
  46.              * 存放数据 
  47.              * String 第一个是存储的key名称,  
  48.              * int 第二个是expire时间(单位秒),超过这个时间,memcached将这个数据替换出去,0表示永久存储(默认是一个月)  
  49.              * Object 第三个参数就是实际存储的数据  
  50.              * long 第四个参数  操作超时时间(单位毫秒默认1秒),优先级高于client.setOpTimeout 
  51.              */   
  52.             client.set("key1"100"测试1",3000);//存放简单数据  
  53.               
  54.             //获取数据  
  55.             String v = client.get("key1");  
  56.             System.out.println(v);//测试1  
  57.               
  58.             //删除数据  
  59.             boolean del = client.delete("key1");  
  60.             v = client.get("key1");  
  61.             System.out.println(v);//null  
  62.               
  63.             //存放集合类型  
  64.             List list = new ArrayList();  
  65.             Map mapdata = new HashMap();  
  66.             mapdata.put("key1""value1");  
  67.             mapdata.put("key2""value2");  
  68.             list.add(mapdata);  
  69.             client.set("list"0, list);  
  70.             List list2 = client.get("list");  
  71.             System.out.println(list2);//[{key2=value2, key1=value1}]  
  72.               
  73.         } catch (Exception e) {  
  74.             e.printStackTrace();  
  75.         }  
  76.     }  
  77. }  
0 0
原创粉丝点击