【问题标题】:Most efficient way to get several hashes in Redis?在 Redis 中获取多个哈希的最有效方法是什么?
【发布时间】:2011-06-23 04:28:58
【问题描述】:

所以我已经阅读了 this post 关于 Redis 哈希没有 MGET 模拟。不幸的是,其中一个答案是使用MULTI/EXEC 批量执行操作,这确实适用于列表和常规键,但不适用于哈希。然而,现在,我正在为我想要检索的每个散列进行电话呼叫,这对我来说似乎是个坏消息。

所以我的问题是:从 Redis 取回多个哈希的最有效方法是什么,效率标准是最少的网络调用次数?我正在使用 Redis 2.0.4,使用 Python 客户端进行编程。谢谢!

【问题讨论】:

    标签: python database-design optimization redis


    【解决方案1】:

    最有效的方法是使用管道。

    假设您想要给定密钥的所有内容并且已经知道所有密钥:

    import redis
    
    r = redis.Redis(host='localhost', port=6379, db=0)
    p = r.pipeline()
    for key in keys:
        p.hgetall(key)
    
    for h in p.execute():
        print h
    

    关于管道的更多信息可以在这里找到:http://redis.io/topics/pipelining

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2021-04-08
      • 2014-11-22
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多