Node-redis: exécution de la commande redis eval pour exécuter le script Lua dans nodeJS

Créé le 22 juin 2017  ·  1Commentaire  ·  Source: NodeRedis/node-redis

Dans Redis, j'exécute un script Lua via CLI comme ceci: -

    $ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2

Ainsi, mon script Lua accepte 4 clés et 2 arguments.

Maintenant, je veux exécuter le même script dans Node.js.

J'utilise cette bibliothèque pour importer Redis dans mon application.

Je n'ai trouvé aucun exemple qui raconte les arguments de la fonction redisClient.eval (...) pour exécuter le script Lua.

Ainsi, je frappe juste quelque chose d'aléatoire qui pourrait fonctionner. Mais rien ne semble fonctionner.

Ma question: Comment exécuter la commande ci-dessous en utilisant node.js, afin qu'elle renvoie la même chose que lorsqu'elle est exécutée via CLI (interface de ligne de commande).

    $ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
question

Commentaire le plus utile

--eval n'est pas une 'vraie' commande redis mais juste une option supplémentaire de redis-cli. Cependant, il est toujours possible de faire ce que vous voulez:

'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);
});

Gardez à l'esprit que vous voudrez peut-être faire des vérifications de sécurité et que EVAL nécessite plus d'options que --eval . En savoir plus sur la différence entre --eval et EVAL ici: https://redis.io/topics/rediscli#running -lua-scripts

>Tous les commentaires

--eval n'est pas une 'vraie' commande redis mais juste une option supplémentaire de redis-cli. Cependant, il est toujours possible de faire ce que vous voulez:

'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);
});

Gardez à l'esprit que vous voudrez peut-être faire des vérifications de sécurité et que EVAL nécessite plus d'options que --eval . En savoir plus sur la différence entre --eval et EVAL ici: https://redis.io/topics/rediscli#running -lua-scripts

Cette page vous a été utile?
0 / 5 - 0 notes