zoukankan      html  css  js  c++  java
  • Memcache在.Net中的使用

    一、Memcache基本概念(socket服务器)

    本质:是一个在内存上存储的hash表,key的最大值是255字符,最长过期时间为30天
    特点:惰性删除,没有监控数据过期的机制,实现最基本的key-value存储,只要MemCache重启了,数据就会消失
    搭建集群:通过客户端驱动实现集群的配置,MemCache集群之间不会相互通信
    客户端实现集群的原理:在memcache配置多台服务器的ip和port的列表,客户端对key进行hash处理得到hashCode,这个hashCode对机器个数取余,把数据存在余数对应的机器上,读取时算法一样(简单余数法,扩容时有弊端,用redis替代比较好)

    基本概念:MemCache是项目的名称, MemCached是MemCache服务器端可以执行文件的名称

     

    二、安装和使用

    第1步:

      (管理员身份)cd memcache所在的文件夹
      安装: Memcached -d install
      启动: Memcached -d start
      卸载: Memcached -d stop
          Memcached -d uninstall

    第2步:

      添加引用 
             
     
    下边是一个Memche的帮助类(忘记是从哪copy的,未标出处见谅)
     1 public static class MemcheHelper
     2     {
     3         static readonly MemcachedClient mc=null;
     4         static MemcheHelper()
     5         {
     6             //最好放在配置文件中
     7             string[] serverlist = { "127.0.0.1:11211", "10.0.0.132:11211" };
     8 
     9             //初始化池
    10             SockIOPool pool = SockIOPool.GetInstance();
    11             pool.SetServers(serverlist);
    12             pool.InitConnections = 3;
    13             pool.MinConnections = 3;
    14             pool.MaxConnections = 5;
    15             pool.SocketConnectTimeout = 1000;
    16             pool.SocketTimeout = 3000;
    17             pool.MaintenanceSleep = 30;
    18             pool.Failover = true;
    19             pool.Nagle = false;
    20             pool.Initialize();
    21 
    22             // 获得客户端实例
    23             mc = new MemcachedClient();
    24             mc.EnableCompression = false;
    25         }
    26         /// <summary>
    27         /// 这是添加的方法
    28         /// </summary>
    29         /// <param name="key"></param>
    30         /// <param name="value"></param>
    31         /// <returns></returns>
    32         public static bool Set(string key,object value)
    33         {
    34             return mc.Set(key, value);
    35         }
    36         public static bool Set(string key, object value,DateTime time)//指定过期时间,最大30天
    37         {
    38             return mc.Set(key, value,time);
    39            
    40         }
    41         /// <summary>
    42         /// 获取数据
    43         /// </summary>
    44         /// <param name="key"></param>
    45         /// <returns></returns>
    46         public static object Get(string key)
    47         {
    48             return mc.Get(key);
    49         }
    50 
    51         /// <summary>
    52         /// 删除数据
    53         /// </summary>
    54         /// <param name="key"></param>
    55         /// <returns></returns>
    56         public static bool Delete(string key)
    57         {
    58             if (mc.KeyExists(key))
    59             {
    60                return mc.Delete(key);
    61             }
    62             return false;
    63         }
    64     }

    代码中简单使用

     static void Main(string[] args)
            {
                //添加,保存一天
                MemcheHelper.Set("TestKey", "TestValue",DateTime.Now.AddDays(1));
                //取值
                MemcheHelper.Get("TestKey");
                //删除
                MemcheHelper.Delete("TestKey");
            }
  • 相关阅读:
    每日算法
    每日算法
    搜索算法入门详解
    NLP
    每日算法
    每日算法
    Elasticsearch地理位置总结
    elasticsearch Geo Bounding Box Query
    elasticsearch Geo Distance Query
    Elasticsearch java API (23)查询 DSL Geo查询
  • 原文地址:https://www.cnblogs.com/wyy1234/p/9029639.html
Copyright © 2011-2022 走看看