在池中使用多个memcache服务器

时间:2010-10-27 22:04:24

标签: python memcached

我正在浏览文档,如果指定了多个服务器,我对memcache如何进行内部负载平衡感到有些困惑。例如:

import memcache
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',])
mc.set("some_key", "Some value")
print mc.get("some_key")

密钥“some_key”的设置和检索是否总是在同一台服务器上?备用密钥的设置和检索(例如“some_key_2”或“some_key_3”)是否会自动分配到服务器池中?如果添加或删除服务器会发生什么?

同样,get_multi会发生什么:

import memcache
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',])
mc.set_multi({42: 'adams', 46 : 'and of me'})
print mc.get_multi([46, 42])

这会自动设置并从正确的服务器检索每个密钥吗?是否有必要编写包装类?

感谢。

1 个答案:

答案 0 :(得分:9)

memcached根据密钥的哈希值在服务器上放置密钥。只要您的服务器设置没有更改,那么给定的密钥将始终落在给定的服务器上。