sql >> Base de Datos >  >> NoSQL >> Redis

El script de Redis lua no funciona

La respuesta a redis.call regresa como una tabla que se ve así:{"ok": "string"} (si el tipo es una cadena, por supuesto)

Entonces, para verificar correctamente, debe cambiar su código a:

local keyType = redis.call("TYPE", KEYS[1]).ok

y el resto del código funcionará bien.

El problema es este:el comando TYPE es uno de los pocos comandos que devuelven una respuesta redis de "cadena simple" o "estado" (consulte las especificaciones del protocolo redis para los tipos de respuesta). En la documentación de redis lua se afirma que:

Respuesta de estado de Redis -> Tabla Lua con un solo campo ok que contiene el estado

Que es lo que pasó aquí.