何时使用更新与无效缓存协议

When to use Update vs Invalidate Cache Protocols

在什么情况下使用更新协议比使用无效协议更好?另外,什么时候使用无效与更新会更好?

我想不出任何可以使用它们的场景。如果您要使缓存行无效,为什么不同时更新它呢?

缓存失效可能基于多个基础。它可以基于时间,滑动 window,基于缓存中的其他项目,也可以来自任何数据源。

更新缓存是一个相对更昂贵的过程。考虑到您的数据源是什么,它可能会花费您宝贵的资源来处理一段时间内不需要的东西。

所以问题是为什么要使项目无效以及为什么/什么时候应该更新它们?

好吧,这完全取决于您的用例。您是否希望您的项目自动过期或依赖于任何项目。

您何时以及为什么要更新它们也取决于您的用例。如果在过去 15 分钟或几小时内没有访问过该项目,您是否需要它?为什么只在它已经失效或过期时才更新它。

缓存中还有一个Read-Through的概念。如果缓存中不存在项目,它会要求更新数据源中的项目。