En Redis ejecuto un script Lua a través de CLI como este: -
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
Entonces, mi script Lua acepta 4 claves y 2 argumentos.
Ahora quiero ejecutar el mismo script en Node.js.
Estoy usando esta biblioteca para importar Redis en mi aplicación.
No encontré ningún ejemplo que habla de los argumentos de la función redisClient.eval (...) para ejecutar el script Lua.
Por lo tanto, estoy golpeando algo aleatorio que podría funcionar. Pero nada parece funcionar.
Mi pregunta: Cómo ejecutar el siguiente comando usando node.js, para que devuelva lo mismo que cuando se ejecuta a través de CLI (interfaz de línea de comandos).
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
--eval
no es un comando redis 'real', sino solo una opción adicional de redis-cli. Sin embargo, todavía es posible hacer lo que quiera:
'use strict'
const redis = require('redis')
const client = redis.createClient()
const fs = require('fs')
client.eval(fs.readFileSync('./test.lua'), 2, 'key1', 'key2', 'first', 'second', function(err, res) {
console.log(arguments);
});
Tenga en cuenta que es posible que desee realizar algunos controles de seguridad y que EVAL
requiere más opciones que --eval
. Lea más sobre la diferencia entre --eval
y EVAL
aquí: https://redis.io/topics/rediscli#running -lua-scripts
Comentario más útil
--eval
no es un comando redis 'real', sino solo una opción adicional de redis-cli. Sin embargo, todavía es posible hacer lo que quiera:Tenga en cuenta que es posible que desee realizar algunos controles de seguridad y que
EVAL
requiere más opciones que--eval
. Lea más sobre la diferencia entre--eval
yEVAL
aquí: https://redis.io/topics/rediscli#running -lua-scripts