Карта / NoSQL (Redis, Mongo) / Redis (key-value, TTL)

Redis (key-value, TTL)

Redis — база данных типа “ключ-значение”, которая хранит всё в оперативной памяти, поэтому работает на порядки быстрее обычной базы на диске. Чаще всего используется как кэш (см. тему «Зачем кэш, уровни кэша»), но умеет и больше.

SET user:1:name "Артур"
GET user:1:name           # "Артур"

SET session:abc123 "user_data" EX 3600   # EX — TTL в секундах, удалится сам через час
Копнуть глубже

TTL (Time To Live) — встроенная “самоуничтожающаяся” запись: указал время жизни, Redis сам удалит ключ по истечении, не нужно писать отдельную логику очистки — идеально для сессий, временных токенов, кэша.

Redis поддерживает не только строки, а целый набор структур данных прямо на уровне базы:

LPUSH mylist "a" "b" "c"     # список (очередь/стек)
SADD myset "x" "y"            # множество уникальных значений
HSET user:1 name "Артур" age 25   # хэш — как объект с полями
ZADD leaderboard 100 "player1"     # отсортированное множество (рейтинги)

Почему Redis такой быстрый. Все данные хранятся в оперативной памяти (RAM), а не на диске — нет задержки на чтение/запись с диска, которая в обычных базах данных является главным узким местом. Цена — данные могут потеряться при перезапуске сервера, если не настроено персистентное сохранение на диск (RDB/AOF — Redis умеет периодически сбрасывать снимок на диск для восстановления после сбоя).

🎤 Закрыл тему, если можешь объяснить:
• что такое Redis и зачем нужен TTL;
• почему Redis такой быстрый и какие структуры данных он поддерживает помимо строк (если дошёл до 2-го слоя).