Redis中是否可以像存储过程一样同时执行多个操作

我有一个存储在Hash中的用户信息和存储在Set中的权限信息。

我想在Set上测试一个条件,然后检索Key,并使用从Hash检索到的Key获取实际值。

我应该如何做到这一点?

我必须使用Lua脚本来实现上述目标吗?还有其他方法吗?

点赞
用户2778503
用户2778503

我有同样的要求,但是我找不到其他办法去做。Redis pipeline和transaction函数是执行多个命令的其他工具,但是对于你的情况,你想要获取一个值并根据它执行一个命令,唯一的方法是使用 LUA !!

2016-02-04 18:39:36
用户3160475
用户3160475

在这种情况下,您将不得不使用多个请求来执行。虽然 Lua 似乎是一个选择,但您的要求 - 即基于另一个键的值获取键 - 排除了单个脚本,因为键名应该显式传递。

2016-02-04 18:47:31
用户3604140
用户3604140

你可以使用哈希表来处理用户信息和他的权限(在同一个哈希表中)。在这种情况下,当你有一个 userId 时,你可以通过使用 userIdpermissionKey 一次性检索权限。请参见以下示例,我将权限作为字符串放置(在您的情况下,请将其作为集合放置):

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

希望这能帮助到你。

2016-02-05 14:04:04