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"
我有一个散列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"