Отговорът на redis.call
връща като таблица, която изглежда така:{"ok": "string"}
(ако типът е низ, разбира се)
Така че, за да проверите правилно, трябва да промените кода си на:
local keyType = redis.call("TYPE", KEYS[1]).ok
и останалата част от кода ще работи добре.
Проблемът е следният:командата TYPE е една от малкото команди, които връщат „прост низ“ или „статус“ отговор на redis (вижте спецификациите на протокола redis за типовете отговор). В документацията на redis lua е посочено, че:
Redis status reply -> Lua таблица с едно поле OK, съдържащо състоянието
Това се случи тук.