public class MemcachedHelper { private static MemcachedClient mc = null; static MemcachedHelper() { //从配置文件中获取比较好 // string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" }; string memcacheservers = ConfigurationManager.AppSettings["memcachSeverList"].ToString(); string[] serverlist = memcacheservers.Split('|'); //初始化池 SockIOPool pool = SockIOPool.GetInstance(); //设置服务器列表 pool.SetServers(serverlist); pool.InitConnections = 3;//初始连接数 pool.MinConnections = 3;//最小连接数 pool.MaxConnections = 5;//最大连接数 pool.SocketConnectTimeout = 1000;//设置连接的套接字超时 pool.SocketTimeout = 3000;//设置套接字超时读取 pool.MaintenanceSleep = 30;//设置维护线程运行的睡眠时间。如果设置为0,那么维护线程将不会启动,30就是每隔30秒醒来一次 //获取或设置池的故障标志。 //如果这个标志被设置为true则socket连接失败,将试图从另一台服务器返回一个套接字如果存在的话。 //如果设置为false,则得到一个套接字如果存在的话。否则返回NULL,如果它无法连接到请求的服务器。 pool.Failover = true; pool.Nagle = false;//如果为false,对所有创建的套接字关闭Nagle的算法 pool.Initialize(); // 获得客户端实例 mc = new MemcachedClient(); //是否启用压缩数据:如果启用了压缩,数据压缩长于门槛的数据将被储存在压缩的形式 mc.EnableCompression = false; } ////// 添加缓存[默认过期时间30天] /// /// /// public static bool Set(string key, object value) { return mc.Set(key, value); } ////// 添加缓存 /// /// /// /// 设置过期时间 Datetime.Now.addDay(12) public static bool Set(string key, object value, DateTime expriTime) { return mc.Set(key, value, expriTime); } ////// 获取缓存 /// /// ///public static object Get(string key) { return mc.Get(key); } /// /// 移除缓存 /// /// ///public static bool Remove(string key) { return mc.Delete(key); } /// /// 缓存的“Key”是否存在 /// /// ///public static bool IsExist(string key) { return mc.KeyExists(key); } }