Модель данных
Тема дорожной карты · Redis
Модель данных Redis построена на основе хранилища «ключ — значение», где каждый ключ является бинарно-безопасной строкой, а значения могут быть одной из нескольких развитых структур данных: строками, списками, множествами, отсортированными множествами, хэшами, потоками, а с модулями Redis Stack — JSON-документами и временными рядами. В отличие от традиционных реляционных баз данных, Redis хранит всю модель данных в памяти, что и обеспечивает субмиллисекундную задержку чтения и записи для кэширования и рабочих нагрузок реального времени. Каждый тип данных в модели данных Redis имеет собственные атомарные операции: LPUSH для списков, ZADD для отсортированных множеств, HSET для хэшей, что позволяет разработчикам моделировать сложные объекты предметной области непосредственно в распределённом кэше. Ключи в Redis принято именовать через двоеточие (например, user:1001:profile) для организации плоского пространства ключей. Выбор правильной структуры данных Redis — самое значимое решение, влияющее на производительность при проектировании слоя кэширования или хранения сессий.
Как это работает
Модель данных — in-memory key-value хранилище с опциональной персистентностью, поддерживающее богатые типы (strings, lists, hashes, sets, sorted sets, streams, geospatial, HyperLogLog, bitmaps). Однопоточный для исполнения команд (кроме I/O threads в 6+) — даёт строгую согласованность на отдельных командах и избегает сложности локов. Команды атомарны; pipeline + MULTI/EXEC батчат. Используется как кеш, очередь, pub/sub брокер, leaderboard, session store, backend для distributed lock.
Когда применять
Redis — когда нужны (а) sub-ms чтения/записи маленьких значений, (б) атомарные счётчики/локи/rate-limit, (в) ephemeral данные (TTL нативно), (г) pub/sub fan-out, (д) leaderboard через sorted sets. Не используйте Redis как primary durable store для важных данных — RAM конечен, persistence с оговорками; PostgreSQL — durable, Redis — быстр. Valkey (форк Redis) — где лицензия Redis беспокоит.
Типичные ошибки
Ловушки Модель данных: хранение огромных блобов в Redis (RAM-bloat — используйте object storage); Redis как единственная копия важного state (крэш без persistence = полная потеря); пароли в Redis без TLS или auth (requirepass); не выставлен maxmemory + eviction policy (OOM убивает процесс). Опасные команды (FLUSHALL, KEYS, DEBUG) — переименовать или отключить в production.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…