Memcache深入

匿名 (未验证) 提交于 2019-12-03 00:39:02

1>.Net内置内存缓存

asp.net中是有缓存的实现:HttpContext.Cache,缓存的数据是放到Web服务器的进程内存里。在控制台、WinForm、子线程、SignalR等不支持HttpContext的地方还可以使用MemoryCache.Default(System.Runtime.Caching这个程序集中),HttpContext.Cache其实就是对MemoryCache的封装。

class Program {     static void Main(string[] args)     {         //MemoryCache类在System.Runtime.Caching这个程序集下          //存                    MemoryCache.Default.Add("UserName", "Tom", DateTimeOffset.Now.AddMinutes(1));          //取         if (MemoryCache.Default.Contains("UserName"))         {             string username = (string)MemoryCache.Default["UserName"];         }     } }
进程内缓存最大的优点就是效率高。在可预期数据量不大的情况下推荐使用。

如果数据量比较大或者集群服务器比较多,就要用单独的分布式缓存了,也就是搞一台或者多台专门服务器保存缓存数据,所有服务器都访问分布式缓存服务器。

2>Memcached

Memcached是一个专门用来做缓存的服务器,而且缓存的数据都在内存中。Memcached就相当于一个Dictionary键值对集合,保存的是键值对,然后根据key取value。

当然web服务器和Memcached之间还是要网络间通讯,效率还是没有进程内缓存效率高。Memcached程序重启之后数据就会消失。(缺点)

Memcached的优点:

1> 多线程,可以充分利用CPU多核的性能;
2>做缓存性能最高;

Memcached的缺点:

1>只能保存键值对数据,键值对只能是字符串,如果有对象数据只能自己序列化成json字符串;
2>数据保存在内存中,重启后会丢失;
3>Key最大长度255个字符,Value最长1M。

Memcached的安装:

.Net连接Memcached:

安装完Memcached的服务端后,然后安装Memcached 的.Net 开发包:Install-Package EnyimMemcached

这样就可以在我们的vs项目中使用.Net代码来对Memcached进行操作了



文章来源: Memcache深入
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!