【问题标题】:How to get indexed keys on a specific range in redis?如何在redis中获取特定范围内的索引键?
【发布时间】:2018-11-26 23:36:03
【问题描述】:

使用 redis,假设我有这些带有索引的键:

user1:0
user1:1
user1:2
user1:3
user1:4
user2:0
user2:1
user2:2

如何从索引 1-3 中获取用户 1 的密钥?所以,这些是我想要的结果:

user1:1
user1:2
user1:3

我尝试了这些命令并得到空结果:

LRANGE user1:* 1 4
SCAN user1:* CURSOR 1 COUNT 3

另一个问题:我把索引保存为辅助键中的元素会更好吗?

【问题讨论】:

    标签: python redis key-value-store


    【解决方案1】:

    您错误地使用了SCAN 命令。

    SCAN 0 MATCH user1:[1-3]
    

    查看doc了解详情。

    另一个问题:我把索引保存为辅助键中的元素会更好吗?

    是的,您可以为匹配模式的键建立二级索引,或尝试redisearch。当您的数据集很大时,SCAN 效率低。

    【讨论】:

      【解决方案2】:

      通过阅读LRANGE 的文档,似乎获取物品的正确方法是(假设您使用RPUSH 制作索引):

      redis> RPUSH user1 "one"
      redis> RPUSH user1 "two"
      redis> RPUSH user1 "three"
      redis> RPUSH user1 "four"
      redis> LRANGE user1 1 4
      1) "one"
      2) "two"
      3) "three"
      4) "four"
      

      source

      【讨论】:

        猜你喜欢
        • 2018-05-02
        • 1970-01-01
        • 1970-01-01
        • 2019-07-03
        • 1970-01-01
        • 2019-07-25
        • 1970-01-01
        • 2021-09-14
        • 2016-07-30
        相关资源
        最近更新 更多