GroupCache是​​否支持像memcached delete这样的显式缓存驱逐?为什么?

时间:2013-11-28 10:22:33

标签: caching go

GroupCache(https://github.com/golang/groupcache)是一个缓存和缓存填充库,在许多情况下用作memcached的替代品。有人对源代码做过一些研究,并且对其原理或实现有很好的理解吗? GroupCache是​​否支持像memcached delete这样的显式缓存驱逐?为什么?

1 个答案:

答案 0 :(得分:2)

来自README

  

不支持版本化值。如果键“foo”是值“bar”,则键“foo”必须始终为“bar”。缓存过期时间,或显式缓存驱逐都没有。因此,也没有CAS,也没有增量/减量。

Groupcache是​​为了提高性能而设计的,具有超级热门项目的概念,它们在整个对等组中进行镜像。

如果支持显式缓存逐出,则必须从所有实例中删除超级热门项,这是不切实际的,因为它会对整个系统产生非常糟糕的性能影响,因为它必须锁定系统中每个对等体的主缓存行。

有关Groupcache背后的设计决策的具体信息,您可以在golang-nuts发布并直接询问Brad Fitzpatrick(作者)。