如何从Java向lua脚本传递变量?(io.lettuce.core)

我有一个lua脚本,如下所示,在远程redis群集上执行hgetall命令:

String shaFindAccount = syncCommands.scriptLoad("local hgetAllKeys = function(key) \n" +
                                                "local acc = redis.call('HGETALL', key)\n" +
                                                "return acc\n" +
                                                "end\n");

我想传递一个变量到hgetall调用中。这是我的eval语句,调用上面的脚本,看起来像这样:

list = syncCommands.evalsha(shaFindAccount,ScriptOutputType.MULTI,key);

其中key是acc的唯一标识符(主键)。现在,这个函数返回一个空列表。

如何从io.lettuce.core中将Java变量传递到上面的lua脚本中?(没有连接问题,我可以使用一个硬编码的'key'值的类似查询,它能工作)

点赞
用户5650224
用户5650224

你可以在 这个 单元测试中找到一些示例。它看起来应该这样调用:

list = syncCommands.evalsha(digest, MULTI, new String[0], key));

并且你应该将参数引用为 ARGV[1]。

2019-03-19 13:38:22