何时使用Update vs Invalidate Cache Protocols

时间:2015-12-18 20:46:51

标签: caching parallel-processing consistency

在哪些情况下使用更新协议与无效协议会更好?还有什么时候使用invalidate vs update更好?

我无法想到任何一种情况都会被使用。如果您要使缓存行无效,为什么不能同时更新它?

1 个答案:

答案 0 :(得分:1)

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

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

所以问题就是为什么要让项目无效以及为什么/何时更新它们?

嗯,这完全取决于你的用例。您希望您的商品自动过期还是依赖于任何商品。

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

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