两个客户端使用redis-py同时访问REDIS

时间:2017-07-11 18:27:55

标签: python redis

我有两个redis-py客户端同时访问REDIS。两个客户端都运行无限循环。两个客户端也在查看相同的哈希值。问题是,当我启动连续的hgetall循环时,我似乎无法再设置该值。

第一个客户端正在进行连续的hgetall

while True:
    query = r.hgetall('myHash')
    for result in query:
        #do something with value1, value2

第二个客户端正在进行连续的hset。如果我删除第二个客户端并只是手动设置新值,我仍然无法设置新值。

r.hset('myHash', 'value1', '23')
r.hset('myHash', 'value2', '17')

这是因为REDIS是单线程的,而hgetall的客户端永远不会释放线程以允许hset吗?

1 个答案:

答案 0 :(得分:0)

准确地说,这就是为什么你不能在同一个哈希上hsethgetallHere是关于单线程性质的官方文档。 Here是解释相同行为的相关问题。此外,如果您希望在redis之上实施小工具,here是指南。