Node-redis: ejecutando el comando redis eval para ejecutar el script Lua en nodeJS

Creado en 22 jun. 2017  ·  1Comentario  ·  Fuente: NodeRedis/node-redis

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
question

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:

'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

>Todos los comentarios

--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

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

gpascale picture gpascale  ·  4Comentarios

adamgajzlerowicz picture adamgajzlerowicz  ·  4Comentarios

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6Comentarios

dotSlashLu picture dotSlashLu  ·  5Comentarios

juriansluiman picture juriansluiman  ·  3Comentarios