ich den Redis TYPE Befehl in einem Lua-Skript zu verwenden ist versucht (über EVAL ausgeführt)Mit dem Befehl TYPE innerhalb eines Redis/Lua Script
local key_type = redis.call("TYPE", key)
Nach der Redis Dokumentation, das eine Reihe von zurückgeben sollte "none"
, "zset"
usw.
Der Typ des zurückgegebenen Werts ist jedoch ein lua table
. Vergleicht man den Wert mit einem String, wird immer false zurückgegeben.
Ich habe in String-Vergleich Befehle zu
durch Änderung der Anruf, um das Problem zu bekommen verwaltetlocal key_type = redis.call("TYPE", key)["ok"]
Dieser Wert ist in der Tat ein String und funktioniert. Ich bin besorgt, dass dies ein Bug in meiner speziellen Version von Redis ist und es in zukünftigen Versionen brechen wird, wenn ich upgrade.
Weiß jemand, ob dies erwartetes Verhalten oder ein Fehler ist?
Vielen Dank für Ihre ausführliche und sachkundige Antwort. –