使用多个memcache服务器池
我在看文档的时候,有点搞不清楚如果指定了多个服务器,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 个回答
12
memcached 会根据键的哈希值把键放到不同的服务器上。只要你的服务器设置没有变化,那么某个特定的键总是会被放到同一台服务器上。