I have a Lua script like this that does an hgetall command on a remote Redis cluster:
String shaFindAccount = syncCommands.scriptLoad("local hgetAllKeys = function(key) \n" +
"local acc = redis.call('HGETALL', key)\n" +
"return acc\n" +
"end\n");
I want to pass a variable to the hgetall call. This is what my eval statement, calling the above script, looks like:
list = syncCommands.evalsha(shaFindAccount, ScriptOutputType.MULTI, key);
Where key
is a unique identifier (primary key) of acc
. Right now this function returns an empty list.
How do I pass a Java variable into the above Lua script with io.lettuce.core
? (There aren't any connection issues, and I can use a similar query with a hard coded key
value and it works.)
You can find some example in this unit test. It seems you should call it in this way:
list = syncCommands.evalsha(digest, MULTI, new String[0], key));
And you should refer to the argument as ARGV[1].