如何在django redis中使用redis管道?

mspsb9vt  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(531)

我想在django redis中使用redis管道(执行多个命令)。
我们可以在redis中使用multi和exec命令,但是如何在django redis中使用呢?
一种解决方案是:
我有一个哈希键列表,我想得到所有哈希使用的哈希键。
每次迭代时,都会向redis服务器发送一个一个地获取散列的命令。

for hashkey in feedlist:
    result = con.execute_command('hgetall',hashkey)
    print(result)

这不是一个好主意,相反,我们可以使用redis管道。但是如何在django redis中实现redis管道呢?

mrzz3bfm

mrzz3bfm1#

在django-redis中使用redis管道。


# first create pipline object using con object

 pipeline = con.pipeline()

将所有命令插入管道。逐个获取所有哈希键并将它们插入管道。

if feedlist:
     for post in feedlist:
         pipeline.execute_command('hgetall',post)
         #hgetall redis command to get all items of given hash key

然后打电话给 execute() 管道上的方法。它将结果返回到结果变量。

result = pipeline.execute()

redis交易
多、执行、丢弃和监视是RIDSIS事务的基础。它们允许在一个步骤中执行一组命令。
优势
一次电话我们就能把所有的记录都取出来。
减少网络通话。
同时阅读
redis交易公文

相关问题