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
--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
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: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
etEVAL
ici: https://redis.io/topics/rediscli#running -lua-scripts