JAVA 的MemCachedClient不能跨服务器清除缓存
关山旧梦 2013-04-08 05:47:02 在项目中使用MemCachedClient,清除另一台服务器上的内存缓存,现在是无法清除另一台服务器上的缓存。
package sitech.common;
import java.util.Date;
import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;
public class MemCachedUtil {
// 构建缓存客户端
private static MemCachedClient cachedClient;
// 单例模式实现客户端管理类
private static MemCachedUtil INSTANCE = new MemCachedUtil();
private MemCachedUtil() {
cachedClient = new MemCachedClient();
cachedClient.setPrimitiveAsString(true);
// cachedClient.setSanitizeKeys(arg0)
//获取连接池实例
SockIOPool pool = SockIOPool.getInstance();
// http://:/
//设置缓存服务器地址,可以设置多个实现分布式缓存
pool.setServers(new String[]{"114.113.156.185: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 MemCachedUtil 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);
cachedClient.flushAll();
}
public void remove(String key, int milliseconds) {
cachedClient.delete(key, milliseconds, new Date());
cachedClient.flushAll();
}
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 void getAll(){
System.out.println(cachedClient);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MemCachedUtil.getInstance().remove("tag1");
//MemCachedUtil u = MemCachedUtil.getInstance();
//u.add("vincent", "1234545667");
//System.out.println(u.get("tag1"));
//u.remove("Artist3");
//System.out.println(u.get("Artist3"));
//u.add("foo", 12345);
//System.out.println(u.get("foo"));
//System.out.println(u.get("vincent"));
//u.getAll();
}