Svaret på redis.call
returnerer som en tabel, der ser sådan ud:{"ok": "string"}
(hvis typen er en streng selvfølgelig)
Så for at tjekke korrekt, bør du ændre din kode til:
local keyType = redis.call("TYPE", KEYS[1]).ok
og resten af koden vil fungere fint.
Problemet er dette:TYPE-kommandoen er en af de få kommandoer, der returnerer et "simpel streng" eller "status" redis-svar (se redis-protokollens specifikationer for svartyperne). I redis lua-dokumentationen står der:
Redis statussvar -> Lua-tabel med et enkelt ok-felt, der indeholder status
Hvilket er, hvad der skete her.