1. 程式人生 > >踩坑錄·Redis執行Lua指令碼報錯

踩坑錄·Redis執行Lua指令碼報錯

Redis環境執行Lua指令碼因未能正確設定全域性變數(global variable)而丟擲錯誤,導致程式終止。

遇到情況

在ZeroBrane Studio工具中使用Redis環境執行如下Lua指令碼:

--下面指令碼的意圖是
--分別在Redis中設定鍵t1、t2的值為1122
tb={t1=11,t2=22}
for k,v in pairs(tb) do
  redis.call("set",k,v)
end

程式終止,丟擲如下錯誤:

Error running script (call to f_f80b4331635cd420f43151b6b50e76a90e6da1a2): @enable_strict_lua:8
E:\Documents\Lua\3.lua:1: Script attempted to create global variable 'tb' 

解決

將全域性變數改為區域性變數即可正常執行。

local tb={t1=11,t2=22}

這個錯誤有點低階,特此記錄,以免再犯。

end