按字段在 Redis 数据库中查找哈希

Find hash in Redis database by field

我的本地计算机上有一个 redis 服务器 运行,我在获取所有键并读取它们的值(散列)时遇到问题。假设我有 100000 个帐户,有什么办法可以通过“uuid”或“电子邮件”和“密码”找到我想要的帐户,而不会滞后于整个数据库(当前情况)。

我已经尝试使用“ACCOUNT_*”获取密钥,然后读取所有字段以找到我想要的内容,但正如我所说,当有很多帐户时,它会导致很多延迟

如有任何帮助,我们将不胜感激。

似乎是 RediSearch 的完美用例。它将自动为您的散列或 JSON 文档创建和维护二级索引,并允许 SQL-like 搜索。

FT.CREATE accounts ON HASH PREFIX 1 acct: SCHEMA uuid TAG SORTABLE
OK

HSET acct:1 uuid a1 key1 val11 key2 val12
(integer) 1

HSET acct:2 uuid a2 key1 val21 key2 val22
(integer) 1

HSET acct:3 uuid a3 key1 val31 key2 val32
(integer) 1

FT.SEARCH accounts "@uuid:{a1}"
1) (integer) 1
2) "acct:1"
3) 1) "uuid"
   2) "a1"
   3) "key1"
   4) "val11"
   5) "key2"
   6) "val12"