C#找到一个带部分密钥字符串的WebCache?

问题描述:

using System.Web.Helpers 

比方说,我说的那些..C#找到一个带部分密钥字符串的WebCache?

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") 

有没有,我觉得所有的缓存与“苹果”键启动和删除它们的方法吗?也许正则表达式..也许不是,有什么想法?

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

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

然而:这有它的注意事项,我会建议考虑才去沿着这条道路至少两次:

  1. 根据并发插入到缓存中,你可能永远不会与所有结束条目被删除,你喜欢。因为当你在它的时候,新的条目 - 你通常想要删除 - 可能已经被其他人插入。

  2. 枚举MemoryCache被警告为“资源密集型”,应该避免。 “默认”高速缓存实例可能会被一些设施用作其后备高速缓存(详见here)。其实MSDN走得更远,他告诉你“不这样做,在生产中的应用”

它可能是最好保持跟踪你在其他地方添加的条目,而且比使用“指数”删除条目明确如果你真的需要。只要确保这个“别处”最终不会成为内存泄漏,那就是你必须确保它最终被清除(你可以使用MemoryCache的更改通知)。