我在Redis Lua脚本中有一个函数。如果一切运行顺利,我都会调用该函数。但是,如果我多次调用该函数,则会出现错误" ERR协议错误:预期' $',得到' '"
var doesExist6 = db.ScriptEvaluate(@" local userName = KEYS[1]
local function mysplit(inputstr, sep)
if sep == nil then
sep = '%s'
end
local t={}
local i=1
for str in string.gmatch(inputstr, '([^'..sep..']+)') do
t[i] = str
i = i + 1
end
return t
end
local abc = {}
abc = mysplit(userName, ':')
for k = 1, #abc, 1
do
print (abc[k])
end
local xyz = {}
xyz = mysplit(userName, ':')
for k = 1, #xyz, 1
do
print (xyz[k])
end
return xyz[1]..abc[2]",
new RedisKey[] { "UserDetails:" + "DummyUser" });
如果我只调用函数mysplit()一次来填充表格' abc'然后一切运行顺利,但如果我第二次调用函数mysplit()填充表xyz它会抛出错误" ERR协议错误:预期' $',得到' '"
可能的原因是什么?难道Redis不允许在Lua脚本中使用函数吗?