我有一个哈希表,它的键看起来是这样的

geo:a

hashkey看起来是这样的
NAME:USERS_IP

我想知道是否有一种方法可以在用户IP是通配符*的情况下获取name的所有值。该表将有数百万条记录,因此我不想获取所有内容,然后必须用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"

关于redis - Redis从哈希中获取与 key 和通配符hashKey匹配的记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35118045/

10-11 01:02