我们可以像在存储过程中一样在Redis中同时执行多个操作

时间:2016-02-04 13:47:59

标签: lua redis

我有一个用户的信息,我已经存储在哈希中。我将他的许可信息存储在Set中 我想测试Set上的条件,检索Key,然后使用Hash中检索到的Key获取实际值。
我怎么能这样做?
我是否必须使用Lua脚本来实现上述目标,还是有其他方式?

3 个答案:

答案 0 :(得分:1)

在这种情况下,您必须使用多个请求来执行此操作。虽然Lua 出现,但您的要求 - 即根据另一个密钥的值获取密钥 - 排除了单个脚本,因为密钥名称应该明确传递。

答案 1 :(得分:0)

我有同样的要求,我找不到任何其他方法来做到这一点。 LUI管道和事务功能是一步执行多个命令的其他工具,但对于您希望获取值并基于它执行命令的情况,唯一的方法仍然是LUA !!

答案 2 :(得分:0)

您可以使用哈希来处理用户信息及其权限(在相同的哈希中)。在这种情况下,当您拥有userId时,您可以使用userIdpermissionKey一次性检索权限。请参阅下面的示例,我将权限设置为字符串(在您的情况下将其设置为Set):

redis> HSET userId permissionKey "perm1, perm2, perm3"
redis> HGET userId permissionKey
"perm1, perm2, perm3"

希望这对你有所帮助。