Memched还是比较简单的,这里把C#的相关操作整理了一下,Mark~

     /// <summary>
     /// 缓存操作类。
     /// </summary>
     /// <remarks>
     /// 简介:
     ///     Memcached是一个开源的高性能分布式缓存系统,基于key-value的形式存储,简洁强大,开发速度快。
     ///     安装教程:http://www.runoob.com/memcached/memcached-install.html
     ///     使用类似:/usr/bin/memcached -p 11211 -u root -d 启动
     /// 存储命令:
     ///     Memcached真的很简单,set、add、replace、append、prepend、cas命令的参数也基本相同,这里就一一缀诉,以set为例,
     /// set key flags exptime bytes [noreply]
     /// value
     ///     key:键值对key-value中的key;
     ///     flags:存储键值对的额外信息;
     ///     exptime:过期时间以秒为单位,0表示永远
     ///     bytes:在缓存中存储的字节数
     ///     noreply(可选):告知服务器不需要返回数据
     ///     value:存储的值(始终位于第二行)
     ///  其他命令:
     ///     get key:查找命令,多值的查找请使用get key1 key2 key3
     ///     delete key:删除命令
     ///     stats:返回统计信息
     ///     flush all:用于清理缓存中的所有的key
     /// </remarks>
     public class MemcachedCore
     {
         public MemcachedClient _mClient;

         /// <summary>
         /// 初始化。
         /// </summary>
         /// <param name="connStr">链接字符串例:127.0.0.1:11211</param>
         /// <param name="poolName"></param>
         public MemcachedCore(string connStr, string poolName = "")
         {
             _mClient = new MemcachedClient();
             _mClient.PoolName = poolName;
             _mClient.EnableCompression = false;

             //初始化
             SockIOPool pool; //memcache的pool可以关联多个server,虽然Memcached是分布式的,但是本身是不支持的,需要在客户端编写分布式策略,通过weight来实现
             if (string.IsNullOrEmpty(poolName))
                 pool = SockIOPool.GetInstance();
             else
                 pool = SockIOPool.GetInstance(_mClient.PoolName);
             pool.SetServers(new string[] { connStr });
             pool.Nagle = false;
             pool.Initialize();
         }

         public void Set<T>(string key, T obj)
         {
             _mClient.Set(key, obj);
         }

         public void Set<T>(string key, T obj, DateTime expireTime)
         {
             _mClient.Set(key, obj, expireTime);
         }

         public void Add<T>(string key, T obj)
         {
             _mClient.Add(key, obj);
         }

         public void Add<T>(string key, T obj, DateTime expireTime)
         {
             _mClient.Add(key, obj, expireTime);
         }

         public void Update<T>(string key, T obj)
         {
             _mClient.Replace(key, obj);
         }

         public void Update<T>(string key, T obj, DateTime expireTime)
         {
             _mClient.Replace(key, obj, expireTime);
         }

         public void Delete(string key)
         {
             _mClient.Delete(key);
         }

         public T Get<T>(string key)
         {
             return (T)_mClient.Get(key);
         }

         public List<T> GetList<T>(string[] keys)
         {
             return _mClient.GetMultipleArray(keys).Select(p => (T)p).ToList();
         }
     }

Memched——C#操作的更多相关文章

  1. 关于DOM的操作以及性能优化问题-重绘重排

     写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...

  2. Sql Server系列:分区表操作

    1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...

  3. C# ini文件操作【源码下载】

    介绍C#如何对ini文件进行读写操作,C#可以通过调用[kernel32.dll]文件中的 WritePrivateProfileString()和GetPrivateProfileString()函 ...

  4. js学习笔记:操作iframe

    iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...

  5. jquery和Js的区别和基础操作

    jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...

  6. ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)

    前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...

  7. 如何在高并发环境下设计出无锁的数据库操作(Java版本)

    一个在线2k的游戏,每秒钟并发都吓死人.传统的hibernate直接插库基本上是不可行的.我就一步步推导出一个无锁的数据库操作. 1. 并发中如何无锁. 一个很简单的思路,把并发转化成为单线程.Jav ...

  8. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  9. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

随机推荐

  1. Oracle数据库安装与连接与简介

    Oracle数据库的安装 1.登录Oracle官网——试用和下载 2.同意协议--->file1 3.完成配置 4.测试连接:打开Oracle developer--->新建连接,注意用户 ...

  2. DDoS攻击与防范策略

    DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大.最难防御的攻击之一. 按照发起的方式 ...

  3. TCP连接的建立以及利用tcpdump分析连接建立的过程(转)

    原文地址:http://www.cnblogs.com/coser/archive/2010/12/05/1968812.html 一.实验目的 实验1_1: 使用Freebsd/Linux操作系统下 ...

  4. 使用jQuery和CSS自定义HTML5 Video 控件 简单适用

    Html5 Video是现在html5最流行的功能之一,得到了大多数最新版本的浏览器支持.包括IE9,也是如此.不同的浏览器提供了不同的原生态浏览器视频空间.我们制作自定义视频控件为了在所有的浏览器中 ...

  5. PHP Base64 加密 & 解密

    <?php 加密: $cany = 'getshell.top'; #定义要加密的字符串 echo base64_encode($cany); #输出加密后的字符串 解密: $cany = 'Z ...

  6. MongoDB 学习笔记(二):shell中执行增删查改

    一.查 1.查询集合中所有文档:db.集合名.find(). 2.查询集合中第一个文档:db.集合名.findOne(). 3.指定查询条件:第一个参数就是指定查询条件 查询全部文档:db.集合名.f ...

  7. Tab切换效果(修改)

    前几天我写了这个切换效果,但是是只传一个值的函数,经过各位大牛的指点发现还是有些问题的,于是经过我不懈的努力,完善了代码: 传递多个参数替代函数里面包含事件这个问题: html代码: <div ...

  8. Python - Datacamp - Introduction to Matplotlib

    Python - Datacamp - Introduction to Matplotlib Datacamp: https://www.datacamp.com/ # 1.py 基本matplotl ...

  9. [剑指offer] 41. 数据流中的中位数 (大小堆,优先队列)

    对于海量数据与数据流,用最大堆,最小堆来管理. class Solution { public: /* * 1.定义一个规则:保证左边(大顶堆)和右边(小顶堆)个数相差不大于1,且大顶堆的数值都小于等 ...

  10. Ajax接收json响应

    json?  Json和xml比较  Ajax如何使用JSON  Ajax接收json响应案例 什么是json?JSON (JavaScript Object Notation) 是一种轻量级的 ...