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 такой быстрый и какие структуры данных он поддерживает помимо строк (если дошёл до 2-го слоя).