如何执行多哈希 redis 查询

Posted

技术标签:

【中文标题】如何执行多哈希 redis 查询【英文标题】:How to perform a multi-hash redis query 【发布时间】:2021-11-08 17:05:08 【问题描述】:

我在 MOC273 等“文件夹”中组织了多个哈希键,

127.0.0.1:6379> HMSET MOC273:123654789 "H_W" "json->H_W->123654789" "H_Y" "json->H_Y->123654789"
OK
127.0.0.1:6379> HMSET MOC273:987654321 "H_W" "json->H_W->987654321" "H_Y" "json->H_Y->987654321"
OK

使用 HGETALL 我可以从哈希中获取所有数据

127.0.0.1:6379> HGETALL  MOC273:123654789
1) "H_W"
2) "json->H_W->123654789"
3) "H_Y"
4) "json->H_Y->123654789"

如何获取 MOC273 中包含的所有哈希(名称以 MOC273 开头)之类的。

127.0.0.1:6379> HGETALL MOC273*

有可能吗?

Current structure of the redis

【问题讨论】:

嗯,使用KEYS (documentation) 命令可以获得所有符合模式的密钥。只需阅读该页面中的警告,然后考虑您是否真的想将其投入生产。 KEYS 命令给我带来了所有的键,但不是每个键中包含的数据。我想只用一个命令来执行这个动作,所以它可以在原子时间内执行 【参考方案1】:

因此您可以使用 Redisearch 围绕 HASH 数据结构创建二级索引。这将使您能够更有效地搜索 HASH 数据。

https://oss.redis.com/redisearch/ - 快速入门应该可以帮助您入门

【讨论】:

以上是关于如何执行多哈希 redis 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在linux中查询redis的数据

死磕 Redis----- 如何排查 Redis 中的慢查询

死磕 Redis----- 如何排查 Redis 中的慢查询

如何查询redis的缓存文件路径

redis做mysql的缓存

Redis的慢查询日志