如何在redis哈希中搜索关键模式?

时间:2016-03-07 17:56:38

标签: python 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]而不是值。

1 个答案:

答案 0 :(得分:4)

您应该使用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)