在VS中安装Memcached,直接在NuGet下搜索Memcached,选择第一个进行安装:

服务端资源下载地址:https://pan.baidu.com/s/1gf3tupl

接下来开始写程序,老规矩,直接上代码:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class Memcached : ICache
{
    private static readonly MemcachedClient CacheClient = new MemcachedClient();
     
    /// <summary>
    /// 获取缓存
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="cacheKey"></param>
    /// <returns></returns>
    public T GetCache<T>(string cacheKey) where T : class
    {
        try
        {
            return (T)CacheClient.Get(cacheKey);
        }
        catch
        {
            return default(T);
        }
    }
 
    /// <summary>
    /// 写入缓存,过期时间默认10分钟
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="value"></param>
    /// <param name="cacheKey"></param>
    public void WriteCache<T>(T value, string cacheKey) where T : class
    {
        //CacheClient.Store(StoreMode.Set, cacheKey, value);
 
        CacheClient.Store(Exists(cacheKey) ? StoreMode.Set : StoreMode.Replace, cacheKey, value, DateTimeHelper.Now.AddMinutes(10));
    }
 
    /// <summary>
    /// 写入缓存
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="value"></param>
    /// <param name="cacheKey"></param>
    /// <param name="expireTime"></param>
    public void WriteCache<T>(T value, string cacheKey, DateTime expireTime) where T : class
    {
        //CacheClient.Store(StoreMode.Set, cacheKey, value, expireTime);
 
        CacheClient.Store(Exists(cacheKey) ? StoreMode.Set : StoreMode.Replace, cacheKey, value, expireTime);
    }
 
    /// <summary>
    /// 移除缓存
    /// </summary>
    /// <param name="cacheKey"></param>
    public void RemoveCache(string cacheKey)
    {
        CacheClient.Remove(cacheKey);
    }
 
    /// <summary>
    /// 移除所有缓存
    /// </summary>
    public void RemoveCache()
    {
        CacheClient.FlushAll();
    }
 
    /// <summary>
    /// 是否存在
    /// </summary>
    /// <param name="key"></param>
    /// <returns></returns>
    private static bool Exists(string key)
    {
        return CacheClient.Get(key) != null;
    }
}

  接口类:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public interface ICache
{
    /// <summary>
    /// 读取缓存
    /// </summary>
    /// <param name="cacheKey">键</param>
    /// <returns></returns>
    T GetCache<T>(string cacheKey) where T : class;
    /// <summary>
    /// 写入缓存
    /// </summary>
    /// <param name="value">对象数据</param>
    /// <param name="cacheKey">键</param>
    void WriteCache<T>(T value, string cacheKey) where T : class;
    /// <summary>
    /// 写入缓存
    /// </summary>
    /// <param name="value">对象数据</param>
    /// <param name="cacheKey">键</param>
    /// <param name="expireTime">到期时间</param>
    void WriteCache<T>(T value, string cacheKey, DateTime expireTime) where T : class;
    /// <summary>
    /// 移除指定数据缓存
    /// </summary>
    /// <param name="cacheKey">键</param>
    void RemoveCache(string cacheKey);
    /// <summary>
    /// 移除全部缓存
    /// </summary>
    void RemoveCache();
}

  配置文件:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration" />
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 
    <sectionGroup name="enyim.com">
      <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching" />
    </sectionGroup>
     
  </configSections>
  <enyim.com>
    <memcached>
      <servers>
        <add address="192.168.1.12" port="11211" />
      </servers>
      <socketPool minPoolSize="10" maxPoolSize="1000" connectionTimeout="00:00:10" deadTimeout="00:02:00" />
    </memcached>
  </enyim.com>

  

---------------------
作者:大师兄丶
来源:CNBLOGS
原文:https://www.cnblogs.com/zhao-yi/p/7826672.html
版权声明:本文为作者原创文章,转载请附上博文链接!

[转]C#操作Memcached帮助类的更多相关文章

  1. C#操作Memcached帮助类

    在VS中安装Memcached,直接在NuGet下搜索Memcached,选择第一个进行安装: 服务端资源下载地址:https://pan.baidu.com/s/1gf3tupl 接下来开始写程序, ...

  2. python操作memcached以及分布式

    memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件.现在已成为 mixi.Facebook.Live ...

  3. Python操作memcached及redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  4. memcached学习笔记5--socke操作memcached 缓存系统

    使用条件:当我们没有权限或者不能使用服务器的时候,我们需要用socket操作memcached memcached-client操作 特点: 无需开启memcache扩展 使用fsocketopen( ...

  5. Python之路第十一天,高级(3)-Python操作 Memcached、Redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  6. PHP操作Memcached

    一.PHP连接Memcached: 一个简单的使用示例: $memcache = new Memcache; $memcache->connect("127.0.0.1",1 ...

  7. Java操作Memcached

    本文复制其他播客,有好的技术文章希望各位大神能告知... 谢谢. 如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import j ...

  8. memcached—Java操作Memcached实例

    前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; imp ...

  9. Memcache笔记03-php操作Memcached

    通过php程序操作Memcached服务几种形式 Memcache 扩展 Memcached 扩展 Socket套接字操作 memcached-client.php(函数) 对于php扩展来说,dan ...

随机推荐

  1. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  2. vue常用操作及学习笔记(路由跳转及路由传参篇)

    路由跳转 - 超链接方式跳转 html: <div id="app"> <h1>Hello App!</h1> <p> <!- ...

  3. 【风马一族_Android】无线连接|调试Android手机

    原文来自:http://www.cnblogs.com/sows/p/6269396.html   (博客园的)风马一族 侵犯版本,后果自负 2017-01-10 15:03:31 准备阶段 1. 软 ...

  4. 在Liferay 7中如何自定义一个Portlet的toolbar

    哈哈,懒得自己写了,直接贴教程了,你想为那个portlet添加自定义的toolbar,就在javax.portlet.name=属性中写上它的值.教程博客:Adding Portlet URL in ...

  5. C++:参数

    一.基础 实参是形参的初始值,对每个形参都需要穿一个能转换为它的实参 形参列表中的形参通常用逗号隔开,其中每个形参都含有一个声明符的声明 二.main(int argc, char *argv[]) ...

  6. php刷新当前页面,js刷新页面

    echo "<script language=JavaScript> location.replace(location.href);</script>"; ...

  7. RNN与 LSTM 网络

    循环神经网络(RNN) 人们的每次思考并不都是从零开始的.比如说你在阅读这篇文章时,你基于对前面的文字的理解来理解你目前阅读到的文字,而不是每读到一个文字时,都抛弃掉前面的思考,从头开始.你的记忆是有 ...

  8. SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作)

    SWF在线绘本批量制作高质量PDF的新方法(重点在批量制作) 2012-12-21  未来决定...       http://www.ebama.net/thread-107643-1-1.html ...

  9. hdu1907 尼姆博弈

    尼姆博弈的性质. 最后一个取输.若a1^a2^a3...^a4=0表示利他态T,不然为利己态S.充裕堆:1个堆里的个数大于2.T2表示充裕堆大于等于2,T1表示充裕堆大于等于1,T0表示无充裕堆.S2 ...

  10. 洞见数据库前沿 阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看

    摘要: 作为DTCC的老朋友和全球领先的云计算厂商,阿里云数据库团队受邀参加本次技术盛会,不仅将派出重量级嘉宾阵容,还会为广大数据库业内人士和行业用户奉上8场精彩议题.下面小编就为大家提前梳理了8大亮 ...