如果您使用以下策略:
这很有效,但缓存显然不会立即失效,这在一些情况下是有问题的。
一个例子是用户将产品添加到购物车。用户将被带到显示购物车内容的新页面。在这种情况下,缓存不会在时间上失效,并且新添加的项目不会出现。如果你重新加载页面,那么监听器就有时间运行,项目就在那里。
我正在努力寻找一种通用的解决方案。这是缓存失效的缺点还是我错过了什么?
答案 0 :(得分:1)
所有缓存方案的通用解决方案都不太可能,您可能会更好地使用常见方法(如Session / HttpContext)为您的应用程序定制解决方案,具体取决于您需要缓存对象的持续时间。
像购物车项目这样的东西可以放入会话中,仅在请求持续时间内缓存的项目可以使用HttpContext.Current.Items等。更常见的是,CacheDependency用于更多不经常更改的静态项目,因此延迟会无所谓。