dk40149:
Tengo un script lua como este que hace un comando hgetall en un clúster Redis remoto:
String shaFindAccount = syncCommands.scriptLoad("local hgetAllKeys = function(key) \n" +
"local acc = redis.call('HGETALL', key)\n" +
"return acc\n" +
"end\n");
Quiero pasar una variable a la llamada hgetall. Esto es lo que mi sentencia eval, llamando al script de arriba, se parece a:
list = syncCommands.evalsha(shaFindAccount, ScriptOutputType.MULTI, key);
Donde key
es un identificador único (clave primaria) de acc. En este momento esta función devuelve una lista vacía.
¿Cómo puedo pasar una variable de Java en el script lua anterior con io.lettuce.core
? (No hay problemas de conexión, puedo utilizar una consulta similar con un codificado key
valor y funciona)
m4gic:
Puede encontrar algunos ejemplos en esta prueba de la unidad. Parece que debería llamarlo de esta manera:
list = syncCommands.evalsha(digest, MULTI, new String[0], key));
y que debe referirse el argumento como ARGV [1].