Lua Set in Redis is not working as expected

I am new to Lua scripting and facing issues while creating Set in Lua. I am trying to store unique elements in Lua Set using below code but it isn't working as expected.

local function test() 
 local t1 = {11,11,22,33,33,44,55,66,77,88,99}
 local t = {}
 for i, v in ipairs(t1)
  t[v] = v
 return t

This function is supposed to return unique elements from t1 but it's returning empty array. I think I am doing something wrong but can't figure out what. Can someone help?

Read lot about Lua Sets still couldn't figure out issue. Tried running script locally in docker with different modifications/approaches but nothing helped


  • Redis converts Lua table to array reply, and you MUST ensure that your Lua table is an array, i.e. index (table key) starting with 1.

    However, in your case, t[1] is nil, and Redis takes it as an empty array.

    In order to fix the problem, you need to convert t to an array:

    -- Your original code generating table `t`
    -- Then convert `t` to an array.
    local res = {}
    for k, v in pairs(t) do
       res[#res + 1] = v
    return res