一尘不染

如何在Redis哈希中搜索密钥模式?

redis

我有一个哈希表,其键的模式为USER_TEL,例如:

bob_123456  : Some address
mary_567894 : other address
john_123456 : third address

现在,我想获取密钥中具有相同TEL的所有用户的地址。

我想出的是:

tel = 123456
r.hmget('address_book', '*_%s' % tel)

我得到[None]而不是价值观。


阅读 266

收藏
2020-06-20

共1个答案

一尘不染

您应该使用HSCAN命令。

例如:

redis> HMSET address_book bob_123456 Address1 mary_567894 Address2 john_123456 Address3
OK
redis> HSCAN address_book 0 match *_123456
1) "0"
2) 1) "bob_123456"
   2) "Address1"
   3) "john_123456"
   4) "Address3"

更新资料

Python实现:

r = Redis(....) #redis url
for address in r.hscan_iter('address_book', match='*_123456'):
  print(address)
2020-06-20