我有 Lua 脚本的“Hello World”程序。我正在尝试从(Chocolatey)Redis 客户端调用脚本。我不断收到此错误(错误) ERR 编译脚本(新函数)时出错:user_script:1:函数参数预期在“。”附近
Redis 脚本:“hello.lua”
local msg = "Hello, world!"
return msg
Run Code Online (Sandbox Code Playgroud)
巧克力 Redis 客户端:
127.0.0.1:6379> EVAL "D:\hello.lua" 0
Run Code Online (Sandbox Code Playgroud)
错误信息
(error) ERR Error compiling script (new function): user_script:1: function argument expected near '.'
Run Code Online (Sandbox Code Playgroud)
EVAL接受脚本本身,而不是文件名。
尝试这个:
EVAL 'local msg = "Hello, world!" return msg' 0
Run Code Online (Sandbox Code Playgroud)
编辑:要执行文件中的脚本,redis-cli提供了--eval可以使用的开关,如下所示:
redis-cli --eval <path-to-script-file> [key1 [key2] ...] , [arg1 [arg2] ...]
Run Code Online (Sandbox Code Playgroud)
我不熟悉 Windows 分支,但它很可能也支持它。
在*nix中,还可以使用shell将脚本的内容提供给cli,例如:
redis-cli SCRIPT LOAD "$(cat path-to-script-file)"
Run Code Online (Sandbox Code Playgroud)
会将文件中的内容加载到 Redis。在 Windows 中应该有类似的方法来实现这一点,但这超出了我当前的范围;)