Node-redis: выполнение команды redis eval для запуска сценария Lua в nodeJS

Созданный на 22 июн. 2017  ·  1Комментарий  ·  Источник: NodeRedis/node-redis

В Redis я запускаю сценарий Lua через CLI следующим образом: -

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

Итак, мой сценарий Lua принимает 4 ключа и 2 аргумента.

Теперь я хочу запустить тот же сценарий в Node.js.

Я использую эту библиотеку для импорта Redis в свое приложение.

Я не нашел ни одного примера, рассказывающего об аргументах функции redisClient.eval (...) для выполнения скрипта Lua.

Таким образом, я просто нажимаю что-то случайное, что может сработать. Но вроде ничего не работает.

Мой вопрос: как выполнить команду ниже с помощью node.js, чтобы она возвращала то же самое, что и при выполнении через CLI (интерфейс командной строки).

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

Самый полезный комментарий

--eval - это не «настоящая» команда redis, а просто дополнительная опция redis-cli. Однако все еще можно делать то, что вы хотите:

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

Имейте в виду, что вы можете захотеть выполнить некоторые проверки безопасности и что EVAL требует больше параметров, чем --eval . Узнайте больше о разнице между --eval и EVAL здесь: https://redis.io/topics/rediscli#running -lua-scripts

>Все замечания

--eval - это не «настоящая» команда redis, а просто дополнительная опция redis-cli. Однако все еще можно делать то, что вы хотите:

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

Имейте в виду, что вы можете захотеть выполнить некоторые проверки безопасности и что EVAL требует больше параметров, чем --eval . Узнайте больше о разнице между --eval и EVAL здесь: https://redis.io/topics/rediscli#running -lua-scripts

Была ли эта страница полезной?
0 / 5 - 0 рейтинги