PRO

Что такое TTL в Redis?

TTL, или время жизни ключа, определяет, через сколько секунд Redis автоматически удалит ключ. TTL используют для кэша, одноразовых токенов, сессий, временных ограничений частоты запросов и других данных, которые не должны храниться постоянно.
Подробный ответ

Что такое TTL

TTL — сокращение от Time To Live, то есть «время жизни». В Redis TTL задаёт срок, после которого ключ автоматически истекает и становится недоступным.

Установка TTL

SET session:abc123 "user:42" EX 3600
SETEX article:42 300 "cached data"
EXPIRE session:abc123 3600
  • SET ... EX 3600 создаёт ключ со сроком жизни 3600 секунд;

  • SETEX сохраняет значение и срок жизни одной командой;

  • EXPIRE добавляет или изменяет срок жизни существующего ключа.

Проверка оставшегося времени

TTL session:abc123
PTTL session:abc123

TTL возвращает время в секундах, а PTTL — в миллисекундах. Значение -1 означает, что ключ существует, но у него нет срока жизни. Значение -2 означает, что ключ не существует.

Примеры использования

  • кэш страницы или ответа API на несколько минут;

  • сессия пользователя на несколько часов;

  • одноразовый код подтверждения на несколько минут;

  • счётчик запросов для ограничения частоты на одну минуту;

  • временная блокировка после множества неудачных попыток входа.

Важный нюанс

Истечение ключа не обязательно происходит в точную миллисекунду: Redis удаляет просроченные ключи при обращении к ним и периодически очищает часть истёкших ключей в фоне. Для прикладной логики важно учитывать это как автоматическое ограничение срока хранения, а не как точный планировщик событий.

Как ответить на собеседовании

TTL — это срок жизни ключа в Redis. После истечения этого срока Redis удаляет ключ. Я задаю TTL для кэша, сессий, токенов и временных счётчиков через SET ... EX, SETEX или EXPIRE, а оставшееся время проверяю командой TTL.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге