你能帮我解决我的问题吗?我有一些很慢的mysql查询,所以我将其结果缓存到memcache中。
我这样做:
$data = get_from_cache();
if (! $data) {
$data = get_from_mysql();
set_cache($data);
}问题来了。有时我每秒有大约10个请求。因此,当我的缓存到期时,我有5-10个get请求同时启动这个缓慢的mysql查询。
你能推荐一个模式让我在php中创建一个互斥体,或者类似这样的东西,只对mysql做一个缓慢的请求吗?
发布于 2013-06-10 23:08:07
这就是所谓的狗堆问题。Strategy: Break Up The Memcache Dog Pile 描述了两种方法:
解决方案1:
解决方案2:
https://stackoverflow.com/questions/17026858
复制相似问题