Mencached工具类

  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;

        }

        /// <summary>
        /// 添加缓存[默认过期时间30天]
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        public static bool Set(string key, object value)
        {
            return mc.Set(key, value);
        }
        /// <summary>
        /// 添加缓存
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="expriTime">设置过期时间 Datetime.Now.addDay(12)</param>
        public static bool Set(string key, object value, DateTime expriTime)
        {
            return mc.Set(key, value, expriTime);
        }

        /// <summary>
        /// 获取缓存
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static object Get(string key)
        {
            return mc.Get(key);
        }
        /// <summary>
        /// 移除缓存
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static bool Remove(string key)
        {
            return mc.Delete(key);
        }

        /// <summary>
        /// 缓存的“Key”是否存在
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static bool IsExist(string key)
        {
            return mc.KeyExists(key);
        }

    }

  

原文地址:https://www.cnblogs.com/kiamer2425/p/7882060.html