在散列中,我有一组键-值对
我的密钥格式如下:name:city

john:newyork
kate:chicago
lisa:atlanta

我使用python访问redis,在https://redis-py.readthedocs.org/en/latest/中,我没有看到任何散列操作进行部分匹配。
我想把所有的钥匙都放在一个城市的名字里
有可能吗?

最佳答案

这是可能的,但不是使用散列对象,而是使用排序集。只要排序集中的所有元素都有相同的分数,就可以进行词典前缀匹配。
假设您执行以下操作(原始redis命令,但python客户机也是如此):

ZADD foo 0 john:newyork:<somevalue>
ZADD foo 0 john:chicago:<somevalue>
ZADD foo 0 kate:chicago:<somevalue>
....

然后可以使用ZRANGEBYLEX进行查询:
ZRANGEBYLEX foo [john: (john:\xff

将为您提供以john开头的所有条目,您可以使用正则表达式或拆分来提取值。
请注意,这是前缀搜索,而不是后缀搜索。如果你想要“纽约的所有条目”,你需要颠倒排序集的顺序。

关于python-2.7 - redis:匹配哈希的部分键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35548023/

10-15 09:17