我有一个像这样的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
值,它的工作原理)
你可以在this单元测试中找到一些例子。看来你应该用这种方式调用它:
list = syncCommands.evalsha(digest, MULTI, new String[0], key));
你应该把论点称为ARGV [1]。