Эквивалент SETEX для GET и TTL
SETEX
полезная команда Redis, с помощью которой можно установить value
а также expiry
ключа в одной атомарной операции.
Есть ли эквивалентная операция, которая атомарно позволяет человеку получить ключ value
а также ttl
? Я знаю, что могу сделать это и в конвейере, но я спрашиваю: SETEX
существует. Если это имеет значение, я использую Redis 2.8.4.
2 ответа
AFAIK, нет такой команды. Тем не менее, вы можете обернуть GET
а также TTL
в скрипт Lua, чтобы получить и значение, и значение ttl за один атомарный вызов.
Кроме того, вы не можете достичь этого с конвейером. Потому что Redis НЕ гарантирует, что команды в конвейере выполняются атомарно.
Вы могли бы использовать MULTI/EXEC
чтобы убедиться, что некоторые команды находятся в транзакции. конвейер просто экономит время транспортировки по сети (rtt), потому что он отправит запрос в пакете и также получит ответ в пакете.
Вы можете сослаться на Redis Transaction и конвейеризацию для более подробной информации.