C# 找到带有部分键字符串的 WebCache?

标签 c# regex

using System.Web.Helpers

假设我添加了那些..

WebCache.Set("apple_1","some value")
WebCache.Set("apple_2","some value")
WebCache.Set("apple_3","some value")
WebCache.Set("peach_1","some value")
WebCache.Set("peach_2","some value")
WebCache.Set("peach_3","some value")

有没有办法找到所有以“apple”开头的缓存并删除它们?也许正则表达式..也许不是,有什么想法吗?

最佳答案

看起来 System.Web.Helpers.WebCache 只是“默认”MemoryCache 实例的包装器,您可以通过 MemoryCache.Default 访问它。

然后您可以枚举条目,检查键是否符合您的条件并调用 MemoryCache.Remove() 以删除不需要的键。

但是:这有它的警告,我建议在走这条路之前至少三思:

  1. 根据缓存中的并发插入,您可能永远不会按照自己喜欢的方式删除所有条目。因为在您进行操作时,新条目(您通常希望删除的条目)可能已经被其他人插入。

  2. 枚举 MemoryCache 被警告为“资源密集型”,应该避免。在“默认”缓存实例上加倍,它可能被相当多的设施用作它们的后备缓存(详细信息参见 here )。其实MSDN甚至告诉您“不要在生产应用程序中这样做”

最好跟踪您在别处添加的条目,而不是在确实需要时使用该“索引”明确删除条目。只需确保这个“其他地方”不会最终成为内存泄漏,也就是说,您必须确保它最终被清除(您可以为此使用 MemoryCache 的更改通知)。

关于C# 找到带有部分键字符串的 WebCache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33537149/

相关文章:

javascript - 正则表达式 - 收集强制前缀和可选组之间的字符

regex - htaccess 将所有斜杠(两个或更多)替换为一个斜杠

regex - Emacs交互式正则表达式替换

c# - C# 中区 block 链的 ECDSA secp256k1 离线签名者

c# - 检查 Controller 和 View 中的权限

javascript - linq 在 javascript 中工作吗

c# - HTTPS 客户端/服务器通信错误 : The underlying connection was closed: An unexpected error occurred on a send

c# - 无法在 app.config 上写入设置(或未显示任何更改)

javascript - 正则表达式:匹配每行中其他字符之间的奇数重复次数

R- 在特定模式后修剪数据帧中的字符串