asp.net高性能之路:无缝切换HttpRuntime.Cache与Memcached,附代码
2011-12-01 10:09
357 查看
概述
之前网站一直使用asp.net自带的cache,也就是HttpRuntime.Cache。这个的优点是进程内cache,效率非常高,同时对于缓存的对象可以直接获得引用,并进行修改,不需要再进行清空缓存。但是使用HttpRuntime.Cache,无法进行扩展,也无法使用web园等等。
方案
之前有看dudu写的关于northscale memcached的文章,觉得很不错,故进行了一下尝试。由于初次使用,出问题的时候要能随时切换回HttpRuntime.Cache,故使用了策略模式,实现无缝切换缓存模式的功能。Memcached的封装类请在https://github.com/enyim/EnyimMemcached/downloads进行下载,我使用的是Northscale.Store.2.8
接口
View Codepublic void ClearCacheByPattern(string pattern) { if(client!=null) return; object c = client.Get("globel_cacheitems"); if (c==null) return; List<string> cacheitems = (List<string>) c; foreach (string cacheitem in cacheitems) { if (cacheitem.StartsWith(pattern)) { client.Remove(cacheitem); } } }
补充:感谢园友YLH对批量删除缓存的回复:
Memcached为了高性能而设计,功能少了很多。 如果内存不吃紧的话,批量删除缓存项,可以采用设置key分区,为分区加上版本号来解决。
要批量删除一个分区的缓存,只需要升级一下缓存分区的版本号即可。目前我们在项目中就是采用这种方案。
这个方案是目前批量删除缓存项的比较完美的方案了,多谢YLH!
如有什么问题,请在下面回复,大家一起讨论。
相关文章推荐
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- ASP.NET生成随机验证码代码和看不清切换验证码的小结
- ASP.net HTTP/HTTPS自动切换
- ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护(示例代码下载)
- HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可!
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- IIS与ASP.NET Http Runtime Pipeline
- Asp.Net Cache缓存使用代码
- ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
- ASP.NET 高性能分页代码
- Asp.net 火狐和IE的兼容性代码解析本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2010/0308/20818.php
- ASP.NET MVC 从IHttp到页面输出的实例代码
- 【ASP.NET】互联网HTTP连接等出错代码大全
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换
- ASP.NET和MSSQL高性能分页实例代码
- asp.net HttpHandler操作Session的函数代码
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题