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

问题描述 投票:0回答:1

我有一个像这样的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值,它的工作原理)

java redis lua parameter-passing lettuce
1个回答
1
投票

你可以在this单元测试中找到一些例子。看来你应该用这种方式调用它:

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

你应该把论点称为ARGV [1]。

© www.soinside.com 2019 - 2024. All rights reserved.