package com.liuruichao.memcached;

import java.util.Date;

import com.danga.MemCached.MemCachedClient;
import com.danga.MemCached.SockIOPool;

public class MemcachedManager {
/**本实例**/
protected static MemcachedManager manager = 
new MemcachedManager();
protected static MemCachedClient client = 
new MemCachedClient();
//设置与缓存服务器的连接池
static {
//服务器列表和其权重
String[] servers = { "127.0.0.1:11211" };
Integer[] weights = { 3 };
//获取socket连接池的实例对象
SockIOPool pool = SockIOPool.getInstance();
pool.setServers(servers);
pool.setWeights(weights);
//设置初始连接数、最小和最大连接数以及最大处理时间
pool.setInitConn(5);
pool.setMaxConn(10);
pool.setMinConn(5);
pool.setMaxIdle(1000 * 60 * 60 * 6);
//设置主线程的睡眠时间
pool.setMaintSleep(30);
//设置TCP的参数,连接超时等
pool.setNagle(false);
pool.setSocketTO(3000);
pool.setSocketConnectTO(0);
//初始化线程池
pool.initialize();
//压缩设置,超过指定大小(单位为k)的数据都会被压缩
client.setCompressEnable(true);
client.setCompressThreshold(1024 * 60);//超过60MB会被压缩
}
/**
 * 使用单例模式
 */
private MemcachedManager() { }
public static MemcachedManager getInstance() {
return manager;
}
public static boolean add(String key, String value) {
return client.add(key, value);
}
public static boolean add(String key, String value, Date date) {
return client.add(key, value, date);
}
public static boolean add(String key, Object value) {
return client.add(key, value);
}
public static boolean replace(String key, Object value, Date date) {
return client.replace(key, value, date);
}
public static Object get(String key) {
return client.get(key);
}
}