Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

O script Redis lua não está funcionando


A resposta para redis.call retorna como uma tabela parecida com esta:{"ok": "string"} (se o tipo for uma string, claro)

Portanto, para verificar corretamente, você deve alterar seu código para:
local keyType = redis.call("TYPE", KEYS[1]).ok

e o resto do código funcionará bem.

A questão é esta:o comando TYPE é um dos poucos comandos que retornam uma resposta redis de "string simples" ou "status" (consulte as especificações do protocolo redis para os tipos de resposta). Na documentação do redis lua afirma-se que:

Redis status reply -> Tabela Lua com um único campo ok contendo o status

Que foi o que aconteceu aqui.