• 分布式缓存系统Memcached简介与实践


    一 Memcached服务器端的安装 (此处将其作为系统服务安装)

      下载文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)

      1 解压缩文件到c:memcached

      2命令行输入 'c:memcachedmemcached.exe -d install'

      3 命令行输入 'c:memcachedmemcached.exe -d start',该命令启动 Memcached ,默认监听端口为 11211

      通过 memcached.exe -h 可以查看其帮助

      二  .NET memcached client library

      下载文件:https://sourceforge.net/projects/memcacheddotnet/

      里面有.net1.1 和 .net2.0的两种版本 还有一个不错的例子。

      三 应用

      1 将Commons.dll,ICSharpCode.SharpZipLib.dll,log4net.dll,Memcached.ClientLibrary.dll 等放到bin目录

      2 引用Memcached.ClientLibrary.dll

      3 代码

    1namespaceMemcached.MemcachedBench
    2{
    3  usingSystem;
    4  usingSystem.Collections;
    5
    6  usingMemcached.ClientLibrary;
    7
    8  publicclassMemcachedBench
    9  {
    10    [STAThread]
    11    publicstaticvoidMain(String[]args)
    12    {
    13      string[]serverlist={"10.0.0.131:11211","10.0.0.132:11211"};
    14
    15      //初始化池
    16      SockIOPoolpool=SockIOPool.GetInstance();
    17      pool.SetServers(serverlist);
    18
    19      pool.InitConnections=3;
    20      pool.MinConnections=3;
    21      pool.MaxConnections=5;
    22
    23      pool.SocketConnectTimeout=1000;
    24      pool.SocketTimeout=3000;
    25
    26      pool.MaintenanceSleep=30;
    27      pool.Failover=true;
    28
    29      pool.Nagle=false;
    30      pool.Initialize();
    31
    32      //获得客户端实例
    33      MemcachedClientmc=newMemcachedClient();
    34      mc.EnableCompression=false;
    35
    36      Console.WriteLine("------------测 试-----------");
    37      mc.Set("test","myvalue"); //存储数据到缓存服务器,这里将字符串"myvalue"缓存,key是"test"
    38
    39      if(mc.KeyExists("test")) //测试缓存存在key为test的项目
    40      {
    41        Console.WriteLine("testisExists");
    42        Console.WriteLine(mc.Get("test").ToString()); //在缓存中获取key为test的项目
    43      }
    44      else
    45      {
    46        Console.WriteLine("testnotExists");
    47      }
    48
    49      Console.ReadLine();
    50
    51      mc.Delete("test"); //移除缓存中key为test的项目
    52
    53      if(mc.KeyExists("test"))
    54      {
    55        Console.WriteLine("testisExists");
    56        Console.WriteLine(mc.Get("test").ToString());
    57      }
    58      else
    59      {
    60        Console.WriteLine("testnotExists");
    61      }
    62      Console.ReadLine();
    63      
    64      SockIOPool.GetInstance().Shutdown(); //关闭池,关闭sockets
    65    }
    66  }
    67}

      4 运行结果

    分布式缓存系统Memcached简介与实践

      后记: 是个不错的东西 ,使用起来也很方便,php ,ruby 的项目中用这个的很多,但是.net项目中用的较少(恕俺孤陋寡闻) 。希望有兴趣的朋友们 多多交流 。

  • 相关阅读:
    给花花看的链接
    Arguments Optional闭包
    对闭包最好的解释
    Everything Be True判断对象是否存在指定的属性且有值
    Binary Agents将二进制句子翻译成英文
    伤情鉴定和伤残鉴定
    Steamroller 数组扁平化处理
    Drop it
    2021年flag-300+道算法~~~
    微服务之玉麟宝典,呕心沥血的日常
  • 原文地址:https://www.cnblogs.com/luluping/p/1375497.html
Copyright © 2020-2023  润新知