zoukankan      html  css  js  c++  java
  • C#操作Memcached

    memcached客户端库

    .Net memcached client
    https://sourceforge.net/projects/memcacheddotnet

    .Net 2.0 memcached client
    http://www.codeplex.com/EnyimMemcached

    Client developed in .NET 2.0 keeping performance and extensibility in mind. (Supports consistent hashing.)
    http://www.codeplex.com/memcachedproviders

    BeIT Memcached Client (optimized C# 2.0)
    http://code.google.com/p/beitmemcached

                int runs = 100;
                int start = 200;
                if(args.Length > 1)
                {
                    runs = int.Parse(args[0]);
                    start = int.Parse(args[1]);
                }
    
                string[] serverlist = { "192.168.0.191:11211" };//可以添加多个服务器
    
                //为服务器初始化IO连接池 initialize the pool for memcache servers
                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;
                pool.Failover = true;
    
                pool.Nagle = false;
                pool.Initialize();
    //            SockIOPool pool = SockIOPool.Instance;
    //            pool.Servers = serverlist;
    //            pool.InitConn = 5;
    //            pool.MinConn = 5;
    //            pool.MaxConn = 50;
    //            pool.MaintSleep = 30;
    //            pool.SocketTO = 1000;
    //            pool.Nagle = false;
    //            pool.Initialize();

    //建立一个客户端实例 MemcachedClient mc = new MemcachedClient(); mc.EnableCompression = false; // MemcachedClient mc = new MemcachedClient(); // mc.CompressEnable = false; // mc.CompressThreshold = 0; // mc.Serialize = true; string keyBase = "testKey"; string obj = "这是缓存的内容,如果很大,注意序列化的开销。也可以压缩后传输。东莞市长安镇图书馆。"; long begin = DateTime.Now.Ticks; for(int i = start; i < start+runs; i++) {
    //写入缓存 mc.Set(keyBase
    + i, obj); } long end = DateTime.Now.Ticks; long time = end - begin; Console.WriteLine(runs + " sets: " + new TimeSpan(time).ToString() + "ms"); begin = DateTime.Now.Ticks; int hits = 0; int misses = 0; for(int i = start; i < start+runs; i++) {
    //读缓存
    string str = (string) mc.Get(keyBase + i); if(str != null) ++hits; else ++misses; } end = DateTime.Now.Ticks; time = end - begin; Console.WriteLine(runs + " gets: " + new TimeSpan(time).ToString() + "ms"); Console.WriteLine("Cache hits: " + hits.ToString()); Console.WriteLine("Cache misses: " + misses.ToString()); //枚举服务器的状态 IDictionary stats = mc.Stats(); foreach(string key1 in stats.Keys) { Console.WriteLine(key1); Hashtable values = (Hashtable)stats[key1]; foreach(string key2 in values.Keys) { Console.WriteLine(key2 + ":" + values[key2]); } Console.WriteLine(); } SockIOPool.GetInstance().Shutdown(); Console.ReadLine();
  • 相关阅读:
    真不容易...终于我也有了个js的语法高亮
    持久层相关概念
    测试语法高亮显示
    BSTR简介和内部结构
    Debugging JavaScript in Your Applications
    Google Analytics 跟踪代码迁移手册
    我对事件驱动的理解
    imagettftext 可调整字间距输出
    投票机的实现及相关技术
    js光标定位到文本末尾
  • 原文地址:https://www.cnblogs.com/shi5588/p/4202779.html
Copyright © 2011-2022 走看看