从 Redis 客户端运行 Lua 脚本时出错

我有一个 Lua 脚本的 "Hello World" 程序。 我试图从(Chocolatey)Redis 客户端调用该脚本。 我一直得到以下错误 (错误)ERR 错误编译脚本(新函数):user_script:1: 函数参数应该在 '.' 附近

Redis 脚本:"hello.lua"

local msg = "Hello, world!"
return msg

Chocolatey Redis 客户端:

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

错误信息

(错误)ERR 错误编译脚本(新函数):user_script:1: 函数参数应该在 '.' 附近
点赞
用户3160475
用户3160475

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 中可能有类似的方式,但这超出了我的范畴 ;)

2016-02-05 13:24:18