windows下【.net平台】Memcached简单使用

1.windows环境下,下载Memcached服务器端软件 安装
    ①.《服务端》
控制台下   d:memcached.exe -d install  安装(服务端文件我放在D盘根目录下了)
                         d:memcached.exe -d start  启动
        【memcached.exe最好放在盘符的根目录下】
 
-p <num>          监听的端口
-l <ip_addr>      连接的IP地址, 默认是本机
-d start          启动memcached服务
-d restart        重起memcached服务
-d stop|shutdown  关闭正在运行的memcached服务
-d install        安装memcached服务
-d uninstall      卸载memcached服务
-u <username>     以<username>的身份运行 (仅在以root运行的时候有效)
-m <num>          最大内存使用,单位MB。默认64MB
-M                内存耗尽时返回错误,而不是删除项
-c <num>          最大同时连接数,默认是1024
-f <factor>       块大小增长因子,默认是1.25
-n <bytes>        最小分配空间,key+value+flags默认是48
-h                显示帮助

启动服务后,memcached服务默认占用的端口是11211,占用的最大内存默认是64M。

可以自己修改端口号,但是需要修改注册表

打开注册表,找到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server

其中的ImagePath项的值为:"c:\memcached-1.2.6\memcached.exe" -d runservice

改成:"c:\memcached-1.2.6\memcached.exe" -p 12345 -m 1024 -d runservice

表示可以 缓存 1G数据。端口 12345

    ②.下载客户端(主要是得到3个*.dll 文件)
  
2. C#代码(项目需引用客户端dll)
  【配置文件中的内容】用于指定Memcached的服务器列表,多台用“,”隔开
 
 1.在全局文件的  Application_Start 方法中加入 初始化连接池的代码
           
 //初始化Memcached的sockIOPool(套接字连接池)
            char[] separator = { ',' };
            
            //Memcached的服务器集合(可以多台)用逗号分隔---在配置文件中读取
            string[] serverlist = ConfigurationManager.AppSettings["Memcached.ServerList"].Split(separator);
            
            // 指定memcached服务器负载量
            //int[] weights = { 3, 3, 2 };
            
 
            // 初始化连接池
            try
            {
                // 从连接池获取一个连接实例
                SockIOPool pool = SockIOPool.GetInstance();
                //设置服务器列表
                pool.SetServers(serverlist);
 
                //设置服务器负载量
                //pool.SetWeights(weights);
 
                //初始连接数
                pool.InitConnections = 3;
                //最小连接数 5
                pool.MinConnections = 3;
                //最大连接数 250
                pool.MaxConnections = 50;
                // 连接超时 时间
                pool.SocketConnectTimeout = 1000;
                //设置 读取 超时3秒钟
                pool.SocketTimeout = 3000;
                // 设置主线程睡眠时间,每隔30秒醒来
                pool.MaintenanceSleep = 30;
                //服务器失效转移(用于有多台Memcached 缓存服务器时,一旦宕机,自动切换到可用服务器)
                pool.Failover = true;
 
 
                // 关闭nagle算法
                pool.Nagle = false;
                pool.Initialize();
            }
            catch (Exception err)
            {
                //这里还可以使用Log4Net记录
                log.Error(err.Message.ToString());
            }
View Code
 2.缓存数据和读取数据
      
MemcachedClient mc = new MemcachedClient();
                DLL dll = new DLL();
                List<T> list = dll.GetModels();//从数据库中取得数据
                // 设置压缩模式
                mc.EnableCompression = true;
                //如果超过1MB 压缩数据
                mc.CompressionThreshold = 1024 * 1024;
              if (!mc.KeyExists("list"))//判断该键 是否存在
            //将值放到cache中
          mc.Set("list", list);
          // 读取数据
          var list = mc.Get("list");
View Code
       
           
 
 
 
原文地址:https://www.cnblogs.com/JsonYang/p/Memcached.html