首先安装python的一致性hash实现库hash_ring
pip install hash_ring
然后使用hash_ring
from hash_ring import HashRing
memcache_servers = ['192.168.0.246:11212',
'192.168.0.247:11212',
'192.168.0.249:11212']
ring = HashRing(memcache_servers)
server = ring.get_node('my_key')
一致性hash可以用在服务器的负载均衡下,用来多服务器或多数据库提供服务时,可以将请求平均分发给每个server
可以提供第二个参数用来设置每个服务的权重
from hash_ring import HashRing
memcache_servers = ['192.168.0.246:11212',
'192.168.0.247:11212',
'192.168.0.249:11212']
servers_weights = {'192.168.0.246:11212':1,
'192.168.0.247:11212':2,
'192.168.0.249:11212':3}
ring = HashRing(memcache_servers, weights=servers_weights)
server = ring.get_node('my_key')
参考资料:http://www.tuicool.com/articles/qM3eYrb