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. 学习js与css 写个2048

    学习阶段,还是写点小东西练练手学的有意思一点,今天用栅格布局做了一个2048,但是移动动画和合并特效没有做,只简单的实现了一下功能. 记录一下学习的过程. 1.入口函数,初始化界面,我这里是直接是一个 ...

  2. javascript学习中自己对作用域和作用域链理解

    在javascript学习中作用域和作用域链还是相对难理解些,下面我关于javascript作用域和作用域链做一下详细介绍,给各位初学者答疑解惑. 首先我们介绍一下什么是作用域?  从字面上理解就是起 ...

  3. 安装pywin32

    1.下载pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/ 2.安装: 安装过程中报错:Python version 2.7 ...

  4. QT4.8界面设计(MSVC2010X)

    1.C++ IDE设计 MFC这种半死不活的windows C++平台已经被抛弃,很无奈.转向Qt的C++还是不错的选择. QT的QML才是最新的亮点,可惜没有时间经历这些东西了. 2.程序代码 2. ...

  5. Spring boot application.properties 配置

    原文链接: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.ht ...

  6. 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子

    1. 一个简单的Quartz 工程     本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当 ...

  7. Quartz经典入门案列

    一.Quartz简介 Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等.Spring对Quartz的集成与其对JDK Timer的集成在任务.触发 ...

  8. 何为DOM对象

    <html> <head> <title>DOM对象</title> <link href="/Content/Site.css&quo ...

  9. 铁大FaceBook的使用体验

    铁大FaceBook是一个类似QQ和微信等聊天程序的缩小版网站,并且其针对领域较为狭窄:即只针对校园的学生和导员等人员.但其有值得推广的潜力性和可能性. 对于使用它的体验:第一点我感觉这个网站的界面很 ...

  10. [luogu4053 JSOI2007] 建筑抢修 (贪心 优先队列)

    传送门 题目描述 小刚在玩JSOI提供的一个称之为"建筑抢修"的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤 ...