Строки

Тема дорожной карты · Redis

Строки Redis — простейший и наиболее универсальный тип данных in-memory хранилища, способный хранить текст, бинарные данные, сериализованный JSON или целые числа объёмом до 512 МБ на ключ. Основные команды: SET key value [EX seconds] [PX milliseconds] [NX|XX] для записи и GET key для чтения, при этом необязательный флаг EX делает строки Redis идеальными для распределённого кэша с автоматическим истечением срока. Когда хранимое значение является целым числом, строки Redis поддерживают атомарное увеличение и уменьшение через INCR, INCRBY, DECR и DECRBY — паттерн широко используется для ограничения скорости, счётчиков просмотров и генерации распределённых последовательностей полностью в памяти. MSET и MGET позволяют выполнять массовые чтения и записи в одном сетевом круговом обходе, снижая накладные расходы при заполнении или чтении множества ключей кэша от Redis-сервера. Строки Redis являются строительным блоком для большинства случаев кэширования: сериализованные объекты, HTML-фрагменты, тела ответов API и идентификаторы сессий — всё это обычно хранится как строковые значения Redis.

Как это работает

Строки — простейший тип Redis: бинарно-безопасная последовательность байт до 512MB. Команды: SET, GET, APPEND, STRLEN, GETRANGE, INCR/DECR (атомарные счётчики на string-encoded integer), SETEX (set с TTL), SETNX (set если нет, основа distributed lock до Redlock). TTL через EXPIRE / PEXPIRE; авто-удаление при истечении.

Когда применять

Strings — рабочая лошадка: кеш JSON-ответов, атомарные счётчики (INCR page_views:2026-05-15), простые feature flags, session ID, rate-limit бакеты. SET ... EX ... NX — "set если нет с TTL", основа безопасных single-instance локов. SETBIT/GETBIT — bitmap-трюки (per-user feature flags, bloom-filter-подобные счёты).

Типичные ошибки

Ловушки Строки: хранение 50MB JSON-блобов как Redis-strings (network + RAM bloat — храните ID + lookup отдельно); ad-hoc TTL дрейфуют (используйте константу); SETNX для локов в Redis Cluster (используйте Redlock или single-master); APPEND многократно к гигантской строке (O(N²) память). Значения маленькие; Redis это RAM, не диск.

Связанные понятия

Полезные ресурсы