无法在Redis Lua脚本中多次调用函数

时间:2016-02-11 09:21:38

标签: lua redis stackexchange.redis

我在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脚本中使用函数吗?

0 个答案:

没有答案