我正在python中创建Redis管道:
rPipe = redis.Redis(...).pipeline()
变量 rPipe 在类的 __ init __ 中定义。
当用户使用 rpipe 调用时,类中的函数会执行 set 和 get 命令。
rpipe.set(...)
rpipe.execute()
但据我所知,Redis服务器会自动关闭Redis连接,所以一旦创建了对象,我的rPipe有效期多久了?
答案 0 :(得分:3)
在正常情况下(例如,除非您达到最大客户端数或最大缓冲区大小限制,或者客户端设置特定超时)Redis不会自动关闭客户端连接。
Redis中的Pipelines是一种将命令组合在一起并将它们一次性发送到服务器,然后在一个步骤中接收所有回复的简单方法。
假设您正在使用redis-py库(但对于任何经过深思熟虑的客户端,相同的参数可能合理地存在),(当您在{a}}上调用{{1>}时,仅管道对象命令被打包并发送到Redis。然后重置管道对象的状态,客户端可以安全地重用它。
作为旁注,如果使用redis-py,请考虑默认情况下将流水线命令包装在MULTI/EXEC transaction中,这并不总是可取的。