我有一个哈希表,它的键看起来是这样的
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/