2016-02-05 89 views
1

我在Lua脚本中有“Hello World”程序。 我试图从(巧克力)Redis客户端调用脚本。 我一直得到这个错误 (错误)ERR错误编译脚本(新函数):user_script:1:函数参数预计接近'。'从redis客户端运行Lua脚本时出错

Redis的脚本: “hello.lua”

local msg = "Hello, world!" 
return msg 

的巧克力Redis的客户端:

127.0.0.1:6379> EVAL "D:\hello.lua" 0 

错误消息

(error) ERR Error compiling script (new function): user_script:1: function argument expected near '.' 

回答

4

EVAL接受脚本本身,而不是文件名。

试试这个:

EVAL 'local msg = "Hello, world!" return msg' 0 

编辑:在文件中执行脚本,redis-cli提供--eval开关,您可以使用如下:

redis-cli --eval <path-to-script-file> [key1 [key2] ...] , [arg1 [arg2] ...] 

我不熟悉与Windows分叉,但它应该很有可能支持它。

在* nix中,你还可以使用shell提供脚本的内容到CLI,例如:

redis-cli SCRIPT LOAD "$(cat path-to-script-file)" 

将加载文件的Redis的内容。在Windows中应该有类似的方法来实现这一点,但这超出了我目前的范围;)

+0

感谢您的快速回复Itamar。我终于可以看到输出。我一直在努力挣扎。再次感谢你。你也可以帮助我如何从redis客户端调用lua scipt文件。如何将参数传递给文件并接受从脚本文件返回的值。 – invincible

+0

我假设你使用Windows cli作为客户端 - 正确吗? –

+0

我在Windows cmd中使用“启动redis-server”和“启动redis-cli”命令分别启动Redis服务器和客户端。他们也是命令提示符,我试图从这个客户端获取数据。 – invincible