在 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,但您需要以某种方式处理该信息
希望对您有所帮助
所以,我有一个等级列表,每个等级都有一个权限列表。我需要将它们存储在 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,但您需要以某种方式处理该信息
希望对您有所帮助