使用redis获取一系列按键?

时间:2012-01-16 03:32:10

标签: redis

我们的数据集在工作时一直出现的东西需要在给定一系列键的情况下查询一堆值。日期范围是一个明显的例子。

我知道你可以使用unix时间戳和一个有序集来按日期范围查询,但这看起来很烦人,因为我必须要么

  1. 将整个文档作为有序集合中的值,或
  2. 只需将id放入其中,然后向redis询问每个密钥。
  3. 也许选项2是标准的?有没有办法一次向redis请求多个密钥?像mongodb的$ in查询?或者也许在管道中要求一堆密钥同样快?

2 个答案:

答案 0 :(得分:7)

选项2,将Ids放入有序集然后使用mget获取值,如果你的键是哈希值,那么你需要发出多个hget,但优点是你可以提取你真正需要的对象的特定部分而不是一切。它在实践中非常快。

答案 1 :(得分:1)

也许一些bash魔法有帮助?

echo 'keys YOURKEY*' | redis-cli | sed 's/^/get /' | redis-cli 

这将输出以YOURKEY

开头的所有键的数据