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

标签 redis hashtable

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

geo:a

hashKey 看起来像这样

NAME:USERS_IP

我想知道是否有办法获取 NAME 的所有值,其中 USERS_IP 是通配符 *。该表将有数百万条记录,因此我不想获取所有内容然后必须使用 php 对其进行解析。

最佳答案

是的,HSCAN是你的 friend ,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 从匹配键和通配符 hashKey 的哈希中获取记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118045/

相关文章:

javascript - 如何更新对象属性的可枚举性?

java - 如何确定具有双重哈希的哈希表何时已满?

javascript - JavaScript 中的哈希表

Laravel - 清除所有包含特定字符串的缓存/redis 键

redis - 对于这种情况,pub/sub 是一个不错的选择吗?

python - Celery 'Error: No nodes replied within time constraint' 错误 - 如何调试?

java - 大小有限的哈希表?

java - apache在创建JedisConfig对象时在运行时公共(public)ClassNotFoundException

redis - 有人曾经在 redis 缓存中存储过 mp3 吗?

java - 哈希表。怎么运行的?