Redis Lua脚本编译报错:'=' expected near 'local'问题求助
问题分析与解决
你的报错根源在于Lua脚本的语法错误,具体有两个关键问题:
多余的
lua前缀
你写的脚本开头加了lua,但这是终端里调用Lua解释器的命令前缀,并不是Lua脚本本身的语法内容,脚本里完全不需要这个前缀,直接写纯Lua代码即可。语句分隔不规范
Lua里多条语句如果挤在同一行,必须用分号;分隔;更推荐的写法是每条语句单独占一行。你把三条语句无分隔地堆在一行,导致Redis的Lua解释器无法正确解析语法结构,这才抛出了"'=' expected near 'local'"的错误。
修正后的Lua脚本
你可以选择以下两种规范格式的任意一种:
格式一:逐行编写(可读性更强)
local user = redis.call('GET', KEYS[1]) local output = redis.call('GET', user) return output
格式二:同一行加分号分隔
local user = redis.call('GET', KEYS[1]); local output = redis.call('GET', user); return output
验证执行
把修正后的代码保存到lua_R_and_D.lua文件中,再执行终端命令:
redis-cli --eval lua_R_and_D.lua 12345
这次应该就能正常返回"It works!!"了。
内容的提问来源于stack exchange,提问作者JSBach
相关产品推荐
相关产品推荐

