Redis存储和获取多条记录

Redis storing and getting multiple records

我对 Redis 很陌生,手头有一项任务是为非营利组织的仪表板优化 Redis 操作。

场景:

我们需要从特定城市加载用户,目前它是按城市 ID 存储的。正如您所想象的那样,这会导致需要在对用户进行每次微小更改时重新缓存大量文档。

我想更改此方法,以便用户以以下格式存储在 Redis 中:[cityID][userID]。所以如果我需要从伦敦拉出所有用户,我可以调用 IDFORLONDON?

这是处理它的正确方法吗?有没有办法从 IDFORLONDON? 中只加载 10 个用户(用于分页)。或者我的选择是全部加载然后切片?

谢谢!

我建议您使用 RedisJSON if you can. RedisJSON is a module,您可以将其添加到 Redis 以扩展其功能——在本例中添加 JSON 文档和一大堆命令来读取、写入、并操纵它们。

从 Redis command-line 看起来像这样:

127.0.0.1:6379> JSON.SET london . '{ "users": [ "alice", "bob", "frank" ]}'
OK
127.0.0.1:6379> JSON.GET london .users
"[\"alice\",\"bob\",\"frank\"]"
127.0.0.1:6379> JSON.ARRAPPEND london .users '"charlie"'
(integer) 4
127.0.0.1:6379> JSON.GET london .users
"[\"alice\",\"bob\",\"frank\",\"charlie\"]"