Redis 从匹配键和通配符 hashKey 的哈希中获取记录?

Redis fetch records from hash that match key and wild card hashKey?

我有一个散列table谁的密钥看起来像这样

geo:a

hashKey 看起来像这样

NAME:USERS_IP

我想知道是否有办法获取 NAME 的所有值,其中 USERS_IP 是通配符 *。 table 将有数百万条记录,所以我不想获取所有内容然后必须用 php.

解析它

是的,HSCAN 是您的朋友,MATCH 选项设置为 NAME:*。例如:

127.0.0.1:6379> HSET 'geo:a' 'alice jones:10.123.8.9' 'some_val'
(integer) 1
127.0.0.1:6379> HSET 'geo:a' 'bill jones:192.123.8.9' 'some_val'
(integer) 1
127.0.0.1:6379> HSET 'geo:a' 'bill jones:192.89.89.89' 'some_val'
(integer) 1
127.0.0.1:6379> HSCAN 'geo:a'  0 match "bill jones:*"
1) "0"
2) 1) "bill jones:192.123.8.9"
   2) "some_val"
   3) "bill jones:192.89.89.89"
   4) "some_val"