Node-redis: 执行redis eval命令以在nodeJS中运行Lua脚本

创建于 2017-06-22  ·  1评论  ·  资料来源: NodeRedis/node-redis

在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
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需要更多的选项。 在此处详细了解--evalEVAL之间的区别: 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需要更多的选项。 在此处详细了解--evalEVAL之间的区别: https: //redis.io/topics/rediscli#running -lua-scripts

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

aletorrado picture aletorrado  ·  6评论

abhaygarg picture abhaygarg  ·  5评论

yuany picture yuany  ·  4评论

Atala picture Atala  ·  3评论

adamgajzlerowicz picture adamgajzlerowicz  ·  4评论