首先,认识一下.Net的Cache组件
在web开发过程中,刚开始,我们可能会这么使用缓存:
有一回,我想缓存一些东西到Cache里,然后定期处理,于是在Global.asax中的Application_Start()方法中写了个Timer,去访问Cache
HttpContext是http请求的上下文对象,在Timer这种定时处理的逻辑中,是不存在http上下文的,那要如何访问Cache?
问度娘,发现了HttpContext.Current.Cache&&HttpRuntime.Cache
原来HttpContext.Current.Cache,HttpRuntime.Cache是同一个对象。
那么,在使用Cache时我们可以直接使用HttpRuntime.Cache。
但是,HttpRuntime.Cache是存在于单台web服务器的内存中的本机缓存,不利于水平扩展,需要替代者。
进入正题,分布式缓存Memcache
这个替代者就是Memcache
.Net使用Memcache
使用MemCache固然很好,但是一开始没有这个资源去额外配置一个MemCache,或者网站规模还没到玩集群的时候,怎么从代码上去方便的切换这个状态呢,不如封装下Cache操作。
配置方式:
如此,码代码的时候可以兼顾分布式缓存,日后配置了Memcache就设置IsUseMemCache为true即可。当然为了多一种选择,这里也开放了调用.net原生缓存的方法。
注意,使用memcache时,需要配置memcache相关参数,详见 一个.Net用Memcache Client库