zoukankan      html  css  js  c++  java
  • 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
           
               
     
     
     
  • 相关阅读:
    Nginx会话保持之nginx-sticky-module模块
    企业级分布式应用服务EDAS _Dubbo商业版_微服务PaaS平台 【EDAS Serverless 运维 创业】
    git repository description
    运维成长
    jenkins+maven+tomcat集群发布
    Leaf——美团点评分布式ID生成系统 UUID & 类snowflake
    tomcat redis 集群 session共享
    JEECG & JEESite Tomcat集群 Session共享
    分布式Tomcat session会话Sticky Sessions问题
    Memcached 集群架构与memcached-session-manager
  • 原文地址:https://www.cnblogs.com/JsonYang/p/Memcached.html
Copyright © 2011-2022 走看看