跳转到主要内容

在Python中实现一致性哈希(使用md5作为哈希函数)。

项目描述

关于hash_ring

实现一致性哈希,可用于服务器节点数量可增加或减少的情况(如memcached)。哈希环使用与libketama相同的算法构建。

一致性哈希是一种方案,它以提供哈希表功能的方式,在添加或删除一个槽位时,不会显著改变键到槽位的映射。

更多关于hash_ring的信息可以阅读一篇博客文章(详细解释了这个想法)

更多关于一致性哈希的信息可以阅读这些文章

还有一个扩展python-memcache以使用一致性哈希进行键分布的包装器MemcacheRing。

示例

使用示例(用于管理memcached实例)

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')

使用权重的示例

memcache_servers = ['192.168.0.246:11212',
                    '192.168.0.247:11212',
                    '192.168.0.249:11212']
weights = {
    '192.168.0.246:11212': 1,
    '192.168.0.247:11212': 2,
    '192.168.0.249:11212': 1
}

ring = HashRing(memcache_servers, weights)
server = ring.get_node('my_key')

如何使用MemcacheRing

from hash_ring import MemcacheRing
mc = MemcacheRing(['127.0.0.1:11212'])
mc.set('hello', 'world')
print mc.get('hello')

代码应该是整洁和简单的。如果在检测到错误时,请随时联系作者。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

hash_ring-1.3.1.tar.gz (4.0 kB 查看哈希值)

上传时间:

构建分布

hash_ring-1.3.1-py2.7.egg (8.4 kB 查看哈希值)

上传时间:

支持