天天看點

Memcached 雪崩處理

Memcached經常用來做為cache擋在db前抗讀的壓力,而這種用法通常有個問題需要解決就是雪崩,一種方式就類似于oracle裡的read by other session的方式給target加一個latch:

1.利用memcache加key的方式mutex key:

<a href="http://timyang.net/programming/memcache-mutex/" target="_blank">http://timyang.net/programming/memcache-mutex/</a>

2.利用gearman :

<a href="http://lists.danga.com/pipermail/memcached/2007-July/004858.html" target="_blank">http://lists.danga.com/pipermail/memcached/2007-July/004858.html</a>

<a href="http://lists.danga.com/pipermail/memcached/2007-July/004863.html" target="_blank">http://lists.danga.com/pipermail/memcached/2007-July/004863.html</a>

3.Php:

<a href="https://code.google.com/p/phplock/" target="_blank">https://code.google.com/p/phplock/</a>

另外的方式就是通過給memcached做主從複制,不過開源出來的一些産品都不是很靠譜,是以經常的做法就是起多個執行個體,在用戶端配置一緻性哈希;這樣當執行個體挂了後hit到資料庫的壓力不會使得其overload;

最近看到memcached作者Brad Fitzpatrick用Go開發了前者的替代版 groupcache,比memcached更多功能,一個亮點就是解決了雪崩的問題。

本文轉自MIKE老畢 51CTO部落格,原文連結:http://blog.51cto.com/boylook/1298729,如需轉載請自行聯系原作者