我正在使用 memcache(不是 memcached),我可能同时有 10000 个请求命中缓存。这可能会导致竞争条件,所以我使用此代码http://terrychay.com/article/keeping-memcache-consistent.shtml来获取锁而不是设置密钥。
现在从日志记录中我看到,当一个请求 A 正在等待缓存时,其他请求 B 可能会完成获取数据并放入缓存,因此请求 A 没有等待和覆盖数据的点。
所以我认为一种解决方案是:当请求等待锁定时,它会检查数据是否存在于 key 处。如果它在那里而不是从键返回数据而不是更新它。其他人能想到任何建议吗?等待锁定时检查密钥会炸毁内存缓存服务器吗?