Di Redis saya menjalankan skrip Lua melalui CLI seperti ini: -
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
Jadi, skrip Lua saya menerima 4 kunci dan 2 argumen.
Sekarang saya ingin menjalankan skrip yang sama di Node.js.
Saya menggunakan perpustakaan ini untuk mengimpor Redis di aplikasi saya.
Saya tidak menemukan contoh apa pun yang menceritakan tentang argumen fungsi redisClient.eval (...) untuk mengeksekusi skrip Lua.
Jadi saya hanya memukul sesuatu secara acak yang mungkin berhasil. Tapi sepertinya tidak ada yang berhasil.
Pertanyaan saya: Bagaimana menjalankan perintah di bawah ini menggunakan node.js, sehingga mengembalikan hal yang sama seperti ketika dijalankan melalui CLI (command-line-interface).
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
--eval
bukanlah perintah redis 'nyata' tetapi hanya opsi tambahan dari redis-cli. Namun, Anda tetap dapat melakukan apa yang Anda inginkan:
'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);
});
Ingatlah bahwa Anda mungkin ingin melakukan beberapa pemeriksaan keamanan dan bahwa EVAL
memerlukan lebih banyak opsi daripada --eval
. Baca lebih lanjut tentang perbedaan antara --eval
dan EVAL
sini: https://redis.io/topics/rediscli#running -lua-scripts
Komentar yang paling membantu
--eval
bukanlah perintah redis 'nyata' tetapi hanya opsi tambahan dari redis-cli. Namun, Anda tetap dapat melakukan apa yang Anda inginkan:Ingatlah bahwa Anda mungkin ingin melakukan beberapa pemeriksaan keamanan dan bahwa
EVAL
memerlukan lebih banyak opsi daripada--eval
. Baca lebih lanjut tentang perbedaan antara--eval
danEVAL
sini: https://redis.io/topics/rediscli#running -lua-scripts