在memcached到期场景中避免狗堆或雷鸣般的群体

Qui*_*Par 7 django algorithm memcached caching

我有一个非常昂贵的查询结果.它是几个表和地图减少作业的连接.

这是缓存memcached15分钟.一旦缓存过期,查询显然会运行,缓存会再次变暖.

但在到期时thundering herd problem问题可能发生.

解决这个问题的一种方法是,我现在就做的是运行一个在第14分钟开始的计划任务.但不知何故,这看起来对我来说非常不合适.

我喜欢的另一种方法是nginx的proxy_cache_use_stale updating;机制.

Web服务器/机器继续提供过时的缓存,同时线程在到期时启动并更新缓存.

有人将此应用于memcached场景虽然我知道这是客户端策略吗?

如果它有益,我用Django.

Dav*_*ver 1

你想要http://pypi.python.org/pypi/dogpile/ \xe2\x80\x94 它实现了一个与 完全相同的算法proxy_cache_use_stale updating,甚至可以与 memcachd 一起使用。

\n