rb(redisblaster)是一个用于Redis的路由和连接管理器,用Python编写。rb是最快的和多个redis节点对话的方式,可以在作为路由的同时对多个节点进行blindlyblasting命令。
它是redis一个实现非复制分片的库。在pythonredis的顶层,实现了一个自定义的路由系统。允许你自动对准不同的服务器,不必手动请求路由到单个节点。
它没有实现redis的所有功能,也不打算这样做。你可以在任意点获取一个对应特定host的客户端,但在大多数情况下,它假设是你的操作仅限于基本的键/值操作,可以自动路由到不同的节点。
能做什么:
单键操作就能自动对准hosts
对所有或子集的节点执行命令
并行地完成上述项目
Setupacluster:
from rb import Clustercluster = Cluster({ 0: {'port': 6379}, 1: {'port': 6380}, 2: {'port': 6381}, 3: {'port': 6382},}, host_defaults={ 'host': '127.0.0.1',})Automaticrouting:
results = []with cluster.map() as client: for key in range(100): client.get(key).then(lambda x: results.append(int(x or 0)))print 'Sum: %s' % sum(results)Fanout:
with cluster.fanout(hosts='all') as client: client.flushdb()
评论