Redis BlasterRedis 的路由和連接管理器
rb(redis blaster) 是一個(gè)用于 Redis 的路由和連接管理器,用 Python 編寫。rb 是最快的和多個(gè) redis 節(jié)點(diǎn)對(duì)話的方式,可以在作為路由的同時(shí)對(duì)多個(gè)節(jié)點(diǎn)進(jìn)行 blindly blasting 命令。
它是 redis 一個(gè)實(shí)現(xiàn)非復(fù)制分片的庫。在 python redis 的頂層,實(shí)現(xiàn)了一個(gè)自定義的路由系統(tǒng)。允許你自動(dòng)對(duì)準(zhǔn)不同的服務(wù)器,不必手動(dòng)請(qǐng)求路由到單個(gè)節(jié)點(diǎn)。
它沒有實(shí)現(xiàn) redis 的所有功能,也不打算這樣做。你可以在任意點(diǎn)獲取一個(gè)對(duì)應(yīng)特定 host 的客戶端,但在大多數(shù)情況下,它假設(shè)是你的操作僅限于基本的鍵/值操作,可以自動(dòng)路由到不同的節(jié)點(diǎn)。
能做什么:
單鍵操作就能自動(dòng)對(duì)準(zhǔn) hosts
對(duì)所有或子集的節(jié)點(diǎn)執(zhí)行命令
并行地完成上述項(xiàng)目
Set up a cluster:
from rb import Cluster
cluster = Cluster({
0: {'port': 6379},
1: {'port': 6380},
2: {'port': 6381},
3: {'port': 6382},
}, host_defaults={
'host': '127.0.0.1',
})
Automatic routing:
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()
評(píng)論
圖片
表情
