执行Redis的lua脚本时报错:
(error) ERR Error compiling script (new function): user_script:1: unexpected symbol near '/'
如下:
127.0.0.1:6379> eval /usr/redis/lua/test.lua 0 (error) ERR Error compiling script (new function): user_script:1: unexpected symbol near '/'
原因:eval 不能直接写脚本文件路径,eval参数列表如下:
EVAL script numkeys key [key ...] arg [arg ...]
script:脚本代码,numkeys:参数个数,key:参数名,arg:参数值。
解决方案:
1先退出Redis的客户端界面,执行:exit。然后执行 ./redis-cli eval "$(cat /usr/redis/lua/test.lua)" 0,此处/usr/redis/lua/test.lua为脚本路径,后面参数照常,此处没有参数所以为0。
127.0.0.1:6379> exit [root@testserver bin]# ./redis-cli eval "$(cat /usr/redis/lua/test.lua)" 0 "hello,world"
2.你还可以直接切换到lua脚本所在目录,再执行redis-cli --eval test.lua 0
[root@testserver ~]# cd /usr/redis/lua [root@testserver lua]# redis-cli --eval test.lua 0 "hello,world"