`
pumaboyd
  • 浏览: 242294 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

系统Cache的批量删除

阅读更多

这里的Cache指的是MS的.NET缓存,我称为OS Cache 或是系统缓存。

OS Cache缓存的批量清空一直是个头疼的问题。举个例子我们根据城市缓存商户信息。也就是说CacheKey = DianPing.Shop.@CityID.@ShopID 那么有时候我们希望清空特定@CityID的商户信息。以前是不好处理的,因为我们不知道,到底有那些CacheKey可以删除(PS:MS没有提供HttpContext.Current.Cache.Items)。

最近自己在处理二级代理的问题时无意中发现 OS Cache 是这样定义的:

public sealed class Cache : IEnumerable

看到了IEnmberable 接口了吗!另人兴奋的接口。以前怎么没注意到呢?有了这个我可以获取到所有的CacheKey啦。以前一直认为的无法获得的CacheKey可以拿到了。有了CacheKey只要调用Cache.Remove(CacheKey)就可以完成清空任务了。那么这里我还需要一些正则表达式的规则,因为需要正则去匹配符合规则的Cachekey。不多说了,看代码:

public static void RemoveByRegex(string pattern)
    {
        IDictionaryEnumerator em = HttpContext.Current.Cache.GetEnumerator();
        Regex regex = new Regex(pattern, RegexOptions.Singleline | RegexOptions.Compiled | RegexOptions.IgnoreCase);
        while (em.MoveNext())
        {
            if (regex.IsMatch(em.Key.ToString()))
            {
                HttpContext.Current.Cache.Remove(em.Key.ToString());
            }
        }
    }

再提供一个清空所有缓存的方法,不用重新上传WebConfig啦.原理是一样的啦!

public static void Clear(string pattern)
   {
       IDictionaryEnumerator em = HttpContext.Current.Cache.GetEnumerator();
       while (em.MoveNext())
       {
           HttpContext.Current.Cache.Remove(em.Key.ToString());
       }
   }

 

(*^__^*),搞定。给我一个正则,我可以清空一片缓存。通过正则表达式批量删除系统缓存的方法完成,一直头疼的问题应该可以解决了。

这里还有几个想到的问题:

  • 批量删除是通过循环去做的,如果一个系统有百万级的KEY,这是有开销的。但反过来想,如果真这么多Key是否是Cache使用不当,有必要这样浪费Key。周一回公司,测试一下我们系统目前大概使用了多少KEY。
  • 想到了敬德在MemCache 中为了解决批量删除,对CacheKey通过SQLDB存储的。不知道MemCache是否有类似的接口。
  • 对Cache的操作是应该有一个类封装了。第一:可以缩短HttpContext.Current.Cache.Add(CacheKey, cityList, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, null); 缓存一个城市列表用了这么长的表达式。第二:可以将我上面的两个方法放入WebCache类中,因为现在没封装,我这两个新方法不知道放哪里!

 

Google 标记: Cache删除, Cache缓存
分享到:
评论

相关推荐

    注册表批量修改权限命令

    枚举在系统下一次启动时所要执行的文件重命名和删除命令的列表。 PipeList 显示系统上的命名管道,包括每个管道的最大实例数和活动实例数。 PortMon 通过高级监视工具监视串行端口和并行端口的活动。它能识别所有的...

    网新企业网站管理系统(蓝色) v9.6.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能...

    网新中英企业网站管理系统 v8.0.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    网新中英企业网站管理系统V2.2.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    ThinkPHP实现一键清除缓存方法

    很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能。代码如下: ThinkPHP后台...

    网新企业网站管理系统(银色)V1.7.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    瑞欣网站管理系统 v1.5 正式版.gz

    17.数据管理模块增加支持批量导出数据功能 18.评论模块数据结构更新,二层合并 19.区块管理模块的功能并入模板管理模块 20.附件管理模块数据表三合一,调整了目录归类的方法 21.删除了角色管理模块,角色管理...

    瓦斯曲25个常用工具

    CAB单文件压缩/解压&批量文件CAB打包 H. 修改hosts-屏蔽网址-解除已屏蔽网址 U. 1.批处理文件加密。2.批处理文件解密 I. 全盘搜索指定日期生成的文件 V. 1.锁定注册表。2.解锁注册表 J. 全盘禁止(解除)指定的程序...

    基于Python Tornado实现的一套CMDB资产管理系统源码,前端使用Vue+Iview-admin.zip

    支持Server/DB批量添加、删除 支持基于Tag管理实现用户访问资产授权 支持AWS/阿里云/腾讯云 AWS/RDS/Cache自动获取 支持IDC、Server、DB 操作记录(POST\PUT\DELETE) 支持标签管理、标签规则管理、自定义规则自动加入...

    php在线考试与评分系统

    这是PHP+EXTJS写的,利用了tp框架,包括了单选,多选,打字,和后台管理功能,批量增加,还有用户注册.URL登陆认证等.适合新手学习,老鸟飞过!!谢谢.配置好后请删除前台或后台的data,temp,cache三个目录.

    ZTJMessage留言板系统 v3.5 Beta.zip

    * 留言批量删除、回复 * 可设置拟静态 * 安全防御加强 * 验证码升级 * 优化安装程序,使安装更加简便 * 验证码开关细分 * 多编辑器选择 * 留言回收站 * 更严谨的输入判断 * 可添加多用户(可详细设置权限) ...

    sysinternals 工具集合 (20090226版)

    如果用Ghost的镜像批量的来安装系统,那么它们的SID号必然相同。若内部网络上计算机SID相同就会造成许多冲突,加入域也会有很大问题,甚至造成客户机无法加入到域。  Windows 安装光盘不是已经提供了Sysprep吗?...

    All-In-One Toolbox Pro 8.1.5.5.8.apk

    *具有超级权限授权的root用户可以自定义启动系统应用程序,执行静默批量操作,删除预安装的膨胀软件。 -App Locker 加密您不想共享的应用程序以锁定隐私,保护隐私免受窥探。 -Protect Privacy 强大的跟踪橡皮擦可...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    1、要求系统安装IIS即Internet 信息服务(IIS),XP(2003)系统是在控制面板——添加删除组件中添加! 2008、vista、win7是在控制面板——程序——打开或关闭windows功能中添加 2、启动IIS(以IIS6.0+为例),在...

    网新中英多国语言CMS v9.0.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    网新中英多国语言CMS v3.7.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    网新中英文企业手机电脑一体化建站视频版 v5.8.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    网新中英文企业手机电脑一体化建站标准版 v4.9.rar

    3、产品分类及产品发布功能,全新开发产品数据批量修改接口,自由添加、修改、删除企业产品分类及产品功能; 4、图片展示功能,自由添加、修改、删除企业产品、案例展示及公司荣誉图片等功能; 5、访客留言功能,...

    Zen Cart 1.5.4 英文版.zip

    Zen Cart用于建立专业的网上商店,支持多语言、多货币、搜索引擎优化、批量更新,是最安全的网店系统之一。 Zen Cart 1.5.4 英文版 更新日志:2015-01-08 CHANGE-724 - 修复init_cache_key_check.php重定向发生...

    Zen Cart 1.5.4 中文版.zip

    Zen Cart用于建立专业的网上商店,支持多语言、多货币、搜索引擎优化、批量更新,是最安全的网店系统之一。 Zen Cart 1.5.4 中文版 更新日志:2015-01-09 CHANGE-724 - 修复init_cache_key_check.php重定向发生...

Global site tag (gtag.js) - Google Analytics