在 Redis 中实现某种 key:key:list 的更简单方法?

Simpler way of achieving some sort of key:key:list in Redis?

所以,我有一个等级列表,每个等级都有一个权限列表。我需要将它们存储在 Redis 中。

问题是从 Redis 下载这些排名的服务器不知道有多少排名/排名的名称。

所以我决定将 "ranks":list of ranks 放入 redis,然后 "rank":list of permissions,这样服务器就可以遍历 "ranks" 列表,并且通过 "rank" 部分获取列表权限。

但是,这有点低效,因为我必须创建两个管道来执行此操作。

我想知道是否有一种方法可以在 Redis 上创建类似 key:key:list 的数据类型?

例如,

"ranks", rank0, 权限列表

"ranks", rank1, 权限列表

等等

目前我有

"ranks",排名列表

"rank0",权限列表

希望这是有道理的。

我能想到两个方案:

  • 为任务创建一个 Lua 脚本。优点是您将删除所需的所有来回网络往返(但您仍然需要对所有列表执行所有 LRANGE 调用)
  • 将键保存在哈希中,哈希的值是列表的序列化版本(例如JSON)。在您的代码中,您会调用 Redis,但您需要以某种方式处理该信息

希望对您有所帮助