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

Memcached Client java连接Memcached集群环境

2016-10-24 18:54 302 查看
这段时间,在网上研究Memcached内存数据库,发现基于Memcached集群的java客户端连接相关的资料还是有点少,

决心研究一下怎么使用Memcached Java Client连接Memcached集群环境之后,写这篇文章:

真是惨,连接好之后,发现其实网上说的没错,原来是我自己搭集群环境的时候,因为是测试,所以写IP的时候写了本机IP:127.0.0.1!!!

直接导致客户端无法连接上我的实际IP:200.31.155.116:12001,然后还找不到原因!

搭建集群环境参考网址:
http://www.2cto.com/os/201506/406932.html
看来还是搭建环境的时候本机IP还是不能随便写,会忽略这个问题,java client代码copy的如下:

[java] view plain copy print?
import java.util.Date;

import com.danga.MemCached.*;

public class MemcacheManagerForGwhalin {

// 构建缓存客户端
private static MemCachedClient cachedClient;
// 单例模式实现客户端管理类
private static MemcacheManagerForGwhalin INSTANCE = new MemcacheManagerForGwhalin();

private MemcacheManagerForGwhalin() {
cachedClient = new MemCachedClient();

// 初始化SockIOPool,管理memcached的连接池
SockIOPool pool = SockIOPool.getInstance();

// 设置缓存服务器列表,当使用分布式缓存的时,可以指定多个缓存服务器。(这里应该设置为多个不同的服务器)
String[] servers = { "192.168.163.10:11211", "192.168.163.11:11211"
// 也可以使用域名 "server3.mydomain.com:1624"
};

pool.setServers(servers);
pool.setFailover(true);
pool.setInitConn(10); // 设置初始连接
pool.setMinConn(5);// 设置最小连接
pool.setMaxConn(250); // 设置最大连接
pool.setMaxIdle(1000 * 60 * 60 * 3); // 设置每个连接最大空闲时间3个小时
pool.setMaintSleep(30);
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setAliveCheck(true);
pool.initialize();
}

/**
* 获取缓存管理器唯一实例
*
* @return
*/
public static MemcacheManagerForGwhalin getInstance() {
return INSTANCE;
}

public void add(String key, Object value) {
cachedClient.set(key, value);
}

public void add(String key, Object value, int milliseconds) {
cachedClient.set(key, value, milliseconds);
}

public void remove(String key) {
cachedClient.delete(key);
}

public void remove(String key, int milliseconds) {
cachedClient.delete(key, milliseconds, new Date());
}

public void update(String key, Object value, int milliseconds) {
cachedClient.replace(key, value, milliseconds);
}

public void update(String key, Object value) {
cachedClient.replace(key, value);
}

public Object get(String key) {
return cachedClient.get(key);
}

public static void main(String[] args) {
//将对象加入到memcached缓存
cachedClient.add("keke", "This is a test String");
//从memcached缓存中按key值取对象
String result  = (String) cachedClient.get("keke");
System.out.println(result);
}

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