Node-redis: Ausführen des Befehls redis eval, um das Lua-Skript in nodeJS auszuführen

Erstellt am 22. Juni 2017  ·  1Kommentar  ·  Quelle: NodeRedis/node-redis

In Redis führe ich ein Lua-Skript über die CLI wie folgt aus : -

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

Mein Lua-Skript akzeptiert also 4 Schlüssel und 2 Argumente.

Jetzt möchte ich das gleiche Skript in Node.js ausführen.

Ich verwende diese Bibliothek zum Importieren von Redis in meine App.

Ich habe kein Beispiel gefunden, das über die Argumente der Funktion redisClient.eval (...) für die Ausführung des Lua-Skripts informiert.

Also treffe ich nur etwas Zufälliges, das funktionieren könnte. Aber nichts scheint zu funktionieren.

Meine Frage: Wie man den folgenden Befehl mit node.js ausführt, damit er dasselbe zurückgibt wie bei der Ausführung über die CLI (Befehlszeilenschnittstelle).

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

Hilfreichster Kommentar

--eval ist kein 'echter' Redis-Befehl, sondern nur eine zusätzliche Option von Redis-Cli. Es ist jedoch weiterhin möglich, das zu tun, was Sie möchten:

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

Denken Sie daran, dass Sie möglicherweise einige Sicherheitsüberprüfungen durchführen möchten und dass EVAL mehr Optionen erfordert als --eval . Lesen Sie hier mehr über den Unterschied zwischen --eval und EVAL : https://redis.io/topics/rediscli#running -lua-scripts

>Alle Kommentare

--eval ist kein 'echter' Redis-Befehl, sondern nur eine zusätzliche Option von Redis-Cli. Es ist jedoch weiterhin möglich, das zu tun, was Sie möchten:

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

Denken Sie daran, dass Sie möglicherweise einige Sicherheitsüberprüfungen durchführen möchten und dass EVAL mehr Optionen erfordert als --eval . Lesen Sie hier mehr über den Unterschied zwischen --eval und EVAL : https://redis.io/topics/rediscli#running -lua-scripts

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen