按字段在 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"
我的本地计算机上有一个 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"