Я пытаюсь использовать конвейеры для обработки сотен тысяч ключей, которые постоянно добавляются в базу данных Redis.
Есть ли в Redis идемпотентный метод установки ttl, если он не существует для ключа?
Я пытаюсь использовать конвейеры для обработки сотен тысяч ключей, которые постоянно добавляются в базу данных Redis.
Есть ли в Redis идемпотентный метод установки ttl, если он не существует для ключа?
Сценарий Lua был бы наиболее эффективным подходом — см. EVAL
документацию для получения более подробной информации о том, как составлять такие сценарии. , и обратитесь к SCRIPT LOAD
и EVALSHA
за их выполнение.
Что-то вроде следующего примера должно исправить вас:
if tonumber(redis.call('TTL', KEYS[1])) < 1 then
redis.call('EXPIRE', KEYS[1], ARGV[1])
end