Redis
 sql >> Database >  >> NoSQL >> Redis

Lo script Redis lua non funziona

La risposta a redis.call restituisce come una tabella simile a questa:{"ok": "string"} (se il tipo è una stringa ovviamente)

Quindi, per controllare correttamente, dovresti cambiare il tuo codice in:

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

e il resto del codice funzionerà bene.

Il problema è questo:il comando TYPE è uno dei pochi comandi che restituiscono una risposta redis "stringa semplice" o "stato" (consultare le specifiche del protocollo redis per i tipi di risposta). Nella documentazione redis lua si afferma che:

Risposta stato Redis -> tabella Lua con un unico campo ok contenente lo stato

Che è quello che è successo qui.