Я пытающегося использовать команду Redis TYPE внутри сценария Lua (выполняется с помощью EVAL)Использование команды TYPE внутри Redis/Lua Script
local key_type = redis.call("TYPE", key)
Согласно документации Redis, это должно возвращать строку "none"
, "zset"
и т. Д.
Однако тип возвращаемого значения - это lua table
. Сравнение значения с строкой всегда возвращает false.
мне удалось обойти эту проблему путем изменения вызова
local key_type = redis.call("TYPE", key)["ok"]
Это значение действительно является строкой, и делает работу в командах сравнения строк. Я беспокоюсь, что это ошибка в моей конкретной версии Redis, и она будет ломаться в будущих версиях при обновлении.
Кто-нибудь знает, если это ожидаемое поведение или ошибка?
Спасибо за подробный и надежный ответ. –