memcached返回的重复键值对

时间:2010-07-28 03:07:24

标签: python concurrency memcached

我们正在使用一组memcached服务器进行缓存,在Django(Python)生产中,尝试了cmemcache和python-memcache作为API。问题是在高并发性下,我们开始有重复的键值对,也就是说我们对单个键有多个值。有没有人有类似的情况和什么是杀人?

由于memcached服务器本身没有与每个服务器通信以维护键值对的奇点,因此该任务留给客户端库,因此我们试图进一步了解cmemcache和python-memcache的工作原理。

2 个答案:

答案 0 :(得分:1)

客户端应根据其密钥确定值所依赖的内存缓存服务器。如果您使用两个不同的客户端(或同一客户端的两个不同配置),他们可能会使用不同的算法将密钥映射到服务器,从而将相同密钥的值发送到两个不同的服务器。

您可能希望切换为pylibmcpython-libmemcached。当我去年审查python memcache客户端时,你提到的两个客户都要么已经退休,要么已经破产或两者兼而有之。

答案 1 :(得分:0)

这是一个更大的问题:拥有冗余数据,或者为查询获得多个结果?

如果前者是问题,那么你手上就有一个讨厌的并发问题。

如果后者是问题,那么,为什么不给每个在memcache中存储值的主机一个唯一的标识符,并将其添加到任何密钥?