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. 企业级Spring应用的搭建

    本次博客将要对SpringMVC做简单的介绍以及环境的搭建: 概述 Spring 框架是一个开源的平台,属于设计层面框架,整个系统面向接口,是分层的JavaSE/EE开源框架,用于解决复杂的企业应用开 ...

  2. vue 子组件向父组件传值通信

    父组件 子组件 子组件用this.$emit

  3. DBGridEh checkbox的一个问题

    function TCustomDBGridEh.CheckBeginRowMoving(MouseX, MouseY: Integer; CheckInOnly: Boolean): Boolean ...

  4. [翻译]内存一致性模型 --- memory consistency model

    I will just give the analogy with which I understand memory consistency models (or memory models, fo ...

  5. [翻译]开源PostgreSQL监控工具OPM

    一个好消息:九月,PostgreSQL OPM开发小组发布了开源的PostgreSQL数据库监控套件的第一个RELEASE版本OPM v2.3.PostgreSQL是先进的高级数据库,但它的一个重要的 ...

  6. Django02 Django基础知识

    一.内容回顾 1.web应用程序 2.HTTP协议 a.http协议特性 b.http请求格式 c.http响应格式 3.wsgiref模块 4.Django下载与简单应用 a.Django简介(MT ...

  7. hive优化分享

    粘贴一下我在部门中的一次hive优化的分享. 简述 hive构建在hadoop基础上,利用分布式存储,通过mr引擎实现对大数据的计算.MR会频繁地读写磁盘而且MR任务的启动成本很高.对于hive优化显 ...

  8. 路飞学城Python-Day79

    27-url控制器之path方法 由于基于re_path的路径编写方式是重复性高的编写url,如果规则改变了,则对应的要去修改很多url,这样是很不方便的 所以采用Django2.0的path去编写u ...

  9. deepin 新创建的用户文件管理中挂载点打不开

    使用 root 用户可以打开,但是使用非 root 用户打不开 原因是权限不够 test1@test1-PC:~$ cd /media/ test1@test1-PC:/media$ ls apt c ...

  10. UVA227 - Puzzle(紫书习题3.5)

    #include <algorithm> #include <iostream> #include <cstdlib> #include <cstring&g ...