在Redis中,我通过CLI运行Lua脚本,如下所示:-
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
因此,我的Lua脚本接受4个键和2个参数。
现在,我想在Node.js中运行相同的脚本。
我正在使用此库在我的应用程序中导入Redis。
我没有找到任何示例来说明用于执行Lua脚本的redisClient.eval(...)函数的参数。
因此,我只是碰到一些可能起作用的东西。 但是似乎没有任何作用。
我的问题:如何使用node.js执行以下命令,以便它返回与通过CLI(命令行界面)执行时相同的内容。
$ redis-cli --eval debug_script.lua key1 key2 key3 key4 , arg1 arg2
--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的一个附加选项。 但是,仍然可以做您想做的事情:请记住,您可能想进行一些安全检查,并且
EVAL
比--eval
需要更多的选项。 在此处详细了解--eval
和EVAL
之间的区别: https: //redis.io/topics/rediscli#running -lua-scripts