我正在尝试使用python redis客户端来制作redis管道,以调用redis服务器获取一些数据。此数据可能存在,也可能不存在。即使数据不存在,根据我在python redis客户端上的阅读和体验,我也应该收到像[None, [None]]这样的东西。
然而,有时我会得到一个空的列表,比如[],这会导致下面的异常(I‘m MISSING!)当我试图解析返回的结果列表时。此外,当我在发现问题后手动重试相同的请求时,我无法重现相同的问题,reids服务器会返回正确的数据或[None,None],这是由我的代码处理的。
redis服务器根本没有写入数据或数据更改,只有在我的代码中读取。
有没有人知道这是什么原因造成的?因为从逻辑上讲,这根本不应该发生。
顺便说一下,我使用的是python redis client 2.10.3。
任何洞察力都会有所帮助。谢谢~!
发布于 2016-04-05 05:36:04
我认为这可能是因为你做了这样的事情:
pipe.watch(...)
...
pipe.execute()而不调用pipe.multi()
# after WATCHing, the pipeline is put into immediate execution
# mode until we tell it to start buffering commands again.请参阅redis-py
https://stackoverflow.com/questions/32828493
复制相似问题