0

我想在 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 管道?

4

1 回答 1

0

在 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 事务

MULTI、EXEC、DISCARD 和 WATCH 是 Redis 中事务的基础。它们允许在一个步骤中执行一组命令。

优点

  • 在一次调用中,我们可以获取所有记录。
  • 减少网络调用。

另请阅读

Redis 交易官方文档

于 2020-03-07T08:45:40.043 回答