您的位置:首页 > 数据库 > Memcache

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

2016-05-06 15:56 225 查看
memcache常用Java客户端有三个:

1、memcached client for java

2、spymemcached

3、xmemcached

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

xmemcached简单使用示例:

Java代码


import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import net.rubyeye.xmemcached.MemcachedClient;

import net.rubyeye.xmemcached.MemcachedClientBuilder;

import net.rubyeye.xmemcached.XMemcachedClientBuilder;

import net.rubyeye.xmemcached.auth.AuthInfo;

import net.rubyeye.xmemcached.command.BinaryCommandFactory;

import net.rubyeye.xmemcached.utils.AddrUtil;

public class MemcacheTest {

public static void main(String[] args){

String addr1 = "10.68.6.115:11212";

MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(addr1));

/**

* 同时使用多个memcache服务时,多个服务地址之间以空格分隔.

* 后面的int数组用于指定每个server的权重,权重大则存取压力大。

* String addr2 = "10.68.6.115:11211 10.68.6.115:11212";

*/

//MemcachedClientBuilder builder

// = new XMemcachedClientBuilder(AddrUtil.getAddresses(addr2),new int[]{1,1});

//设置账号密码

//如果memcache启用了sasl认证,但是客户端未提供有效账号密码,则抛出异常:

//Authentication required or not successful

//builder.addAuthInfo(AddrUtil.getOneAddress("10.68.6.115:11211"), AuthInfo.plain("root", "123456"));

//builder.addAuthInfo(AddrUtil.getOneAddress("10.68.6.115:11212"), AuthInfo.plain("root", "123456"));

//使用二进制文件

builder.setCommandFactory(new BinaryCommandFactory());

MemcachedClient client;

try {

client = builder.build();

//设置连接超时时间(2分钟),默认1分钟,单位毫秒

client.setConnectTimeout(2*60*1000);

//设置操作超时时间(3秒),默认1秒,单位毫秒

client.setOpTimeout(3*1000);

/**

* 存放数据

* String 第一个是存储的key名称,

* int 第二个是expire时间(单位秒),超过这个时间,memcached将这个数据替换出去,0表示永久存储(默认是一个月)

* Object 第三个参数就是实际存储的数据

* long 第四个参数 操作超时时间(单位毫秒默认1秒),优先级高于client.setOpTimeout

*/

client.set("key1", 100, "测试1",3000);//存放简单数据

//获取数据

String v = client.get("key1");

System.out.println(v);//测试1

//删除数据

boolean del = client.delete("key1");

v = client.get("key1");

System.out.println(v);//null

//存放集合类型

List list = new ArrayList();

Map mapdata = new HashMap();

mapdata.put("key1", "value1");

mapdata.put("key2", "value2");

list.add(mapdata);

client.set("list", 0, list);

List list2 = client.get("list");

System.out.println(list2);//[{key2=value2, key1=value1}]

} catch (Exception e) {

e.printStackTrace();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: