设为首页 收藏本站
查看: 2047|回复: 0

[经验分享] .Net Memcached缓存用法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-31 12:00:37 | 显示全部楼层 |阅读模式
  memcached是一个以key-value的形式缓存数据的缓存系统。通过将数据缓存到内存中,从而提高数据的获取速度。
memcached以key-value的形式来保存数据,你可以为你每一段数据关联一个key,然后以后可以通过这个key获取
这段数据。
  memcached是一个库还是什么?memcached其实是一个单独的网络服务器程序。它的网络底层基于libevent,你可以
将其运行在网络中的一台服务器上,通过网络,在遵循memcached的协议的基础上与memcached服务器进行通信。
  一、安装Memcached服务
1. copy to c:\
2. start -> run -> cmd
3.
C:\memcached -d install -m 500
C:\memcached -d start
  二、引用Enyim.Caching.dll
  三、配置Config文件


DSC0000.gif DSC0001.gif


1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <configSections>
4     <sectionGroup name="enyim.com">
5       <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
6     </sectionGroup>
7     <section name="memcached" type="Enyim.Caching.Configuration.MemcachedClientSection, Enyim.Caching"/>
8   </configSections>
9
10   <enyim.com>
11     <memcached configSource="ConfigFiles\enyim.com.config"/>
12   </enyim.com>
13   <memcached configSource="ConfigFiles\memcached.config"/>
14   
15     <startup>
16         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
17     </startup>
18 </configuration>
View Code   enyim.com.config





1 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
2     <!--
3         Please read the documentation first:
4             http://github.com/enyim/EnyimMemcached/wiki/MemcachedClient-Configuration
5
6         Use this section as a template if you're connecting to regular memcached servers.
7         Note: you must have the enyim.com/memcached section if you're using the parameterless constructor of EnyimMemcachedClient.
8       -->
9     <memcached protocol="Text">
10         <servers>
11             <add address="127.0.0.1" port="11211" />
12         </servers>
13         <socketPool minPoolSize="50"
14                     maxPoolSize="1000"
15                     connectionTimeout="00:01:10"
16                     deadTimeout="00:02:00"
17                     />
18     </memcached>
View Code   memcached.config





1 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
2 <memcached keyTransformer="Enyim.Caching.TigerHashTransformer, Enyim.Caching">
3     <servers>
4         <add address="127.0.0.1" port="11211" />
5     </servers>
6     <socketPool minPoolSize="50" maxPoolSize="1000" connectionTimeout="00:01:10" deadTimeout="00:02:00" />
7 </memcached>
View Code   四、实例代码





1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using Enyim.Caching.Configuration;
7 using Enyim.Caching;
8 using Enyim.Caching.Memcached;
9
10
11 namespace MemcachedConsole
12 {
13     class Program
14     {
15         static void Main(string[] args)
16         {
17             MemcachedClient mc = new MemcachedClient();
18
19             // store a string in the cache
20             mc.Store(StoreMode.Set, "MyKey", "Hello World");
21             // retrieve the item from the cache
22             Console.WriteLine(mc.Get("MyKey"));
23             // store some other items
24             mc.Store(StoreMode.Set, "D1", 1234L);
25             mc.Store(StoreMode.Set, "D2", DateTime.Now);
26             mc.Store(StoreMode.Set, "D3", true);
27             mc.Store(StoreMode.Set, "D4", new Product());
28             mc.Store(StoreMode.Set, "D5", new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
29             Console.WriteLine("D1: {0}", mc.Get("D1"));
30             Console.WriteLine("D2: {0}", mc.Get("D2"));
31             Console.WriteLine("D3: {0}", mc.Get("D3"));
32             Console.WriteLine("D4: {0}", mc.Get("D4"));
33
34             byte[] tmp = mc.Get<byte[]>("D5");
35             // delete them from the cache
36             mc.Remove("D1");
37             mc.Remove("D2");
38             mc.Remove("D3");
39             mc.Remove("D4");
40             // add an item which is valid for 10 mins
41             mc.Store(StoreMode.Set, "D4", new Product(), new TimeSpan(0, 10, 0));
42             Console.ReadLine();
43         }
44     }
45
46     [Serializable]
47     class Product
48     {
49         public double Price = 1.24;
50         public string Name = "Mineral Water";
51         public override string ToString()
52         {
53             return String.Format("Product {{{0}: {1}}}", this.Name, this.Price);
54         }
55     }
56 }
View Code   参考:http://kb.cnblogs.com/page/42777/
  参考:http://www.cnblogs.com/czh-liyu/archive/2010/04/27/1722084.html
  代码地址:http://pan.baidu.com/share/link?shareid=796487540&uk=3658066951

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106784-1-1.html 上篇帖子: NorthScale Memcached Server尝试总结 下篇帖子: 一步步实现一个基本的缓存模块·续, 添加Memcached调用实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表