redis.py:如何刷新管道中的所有查询

Man*_*odi 3 redis python-2.7

我有一个 Redis 管道说:

r = redis.Redis(...).pipline()
Run Code Online (Sandbox Code Playgroud)

假设我需要删除任何残留查询(如果存在于管道中而不执行)。有类似的东西r.clear()吗?

我有搜索文档和源代码,但找不到任何东西。

Joe*_*rty 7

命令列表只是一个Python列表对象。你可以像这样检查它:

from redis import StrictRedis
r = StrictRedis()
pipe = r.pipeline()
pipe.set('KEY1', 1)
pipe.set('KEY2', 2)
pipe.set('KEY3', 3)
pipe.command_stack
[(('SET', 'KEY1', 1), {}), (('SET', 'KEY2', 2), {}), (('SET', 'KEY3', 3), {})]
Run Code Online (Sandbox Code Playgroud)

该命令尚未发送到服务器,因此您可以直接 pop() 或删除不需要的命令。您也可以只分配一个空列表,pipe.command_stack = [].

如果有很多,您只需将新的 Pipeline 对象重新分配给管道即可。

希望这就是你的意思。

干杯乔