Key-Value хранилища
Ключ сразу указывает на значение
Key-Value Store хранит пары «ключ → значение». Приложение знает ключ и по нему читает, записывает или удаляет значение. Модель проста, поэтому такой доступ можно сделать очень быстрым и хорошо распределяемым.
session:9f21 -> { userId: 42, expiresAt: ... }
feature:user:42 -> { darkMode: true }
Само хранилище обычно не обязано понимать внутреннюю структуру значения так же глубоко, как реляционная база понимает колонки и связи между таблицами.
Сильная сторона — известный путь доступа
Key-value модель особенно удобна, когда почти каждый запрос имеет вид «дай значение по этому ключу». Это могут быть сессии, настройки, счётчики, временное состояние или быстрые lookup-данные.
Если приложению постоянно нужны фильтры по нескольким полям, joins и произвольные аналитические запросы, одного доступа по ключу становится недостаточно.
Ключ — часть архитектуры
Формат ключа влияет на распределение данных и удобство доступа. Он должен быть стабильным, однозначным и соответствовать тому, как приложение действительно читает данные.
Например, если профиль всегда читается по userId, естественным ключом будет именно идентификатор пользователя.
Если нужный lookup идёт по другому признаку, может потребоваться отдельная структура или вторичный индекс, если хранилище его поддерживает.
TTL удобен для временных данных
Многие key-value системы позволяют задать срок жизни записи. После истечения TTL значение автоматически становится недоступным и удаляется по правилам конкретного продукта.
SET session:9f21 value TTL=30m
Это естественно для сессий, одноразовых токенов и других данных, которые не должны жить бесконечно.