当先锋百科网

首页 1 2 3 4 5 6 7

执行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"