Redis存储和获取多条记录
Redis storing and getting multiple records
我对 Redis 很陌生,手头有一项任务是为非营利组织的仪表板优化 Redis 操作。
场景:
- 我们有多个城市(伦敦、罗马……)
- 我们在每个城市都有 1000 多个用户
我们需要从特定城市加载用户,目前它是按城市 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\"]"
我对 Redis 很陌生,手头有一项任务是为非营利组织的仪表板优化 Redis 操作。
场景:
- 我们有多个城市(伦敦、罗马……)
- 我们在每个城市都有 1000 多个用户
我们需要从特定城市加载用户,目前它是按城市 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\"]"