> Какие типы и структуры данных поддерживает Redis (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: MTS

Стек: Redis, Python

> Пример ответа

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

  1. Строки (Strings) - базовый тип для хранения текста, чисел или бинарных данных (до 512 МБ). Используется для кэширования, счетчиков (INCR/DECR), сессий.

  2. Списки (Lists) - упорядоченные коллекции строк, реализованные как связные списки. Подходят для очередей (LPUSH/RPOP), логов, стека.

  3. Множества (Sets) - неупорядоченные коллекции уникальных строк. Позволяют выполнять операции пересечения (SINTER), объединения (SUNION), разности (SDIFF). Применяются для тегов, фильтрации дубликатов.

  4. Упорядоченные множества (Sorted Sets) - как множества, но с оценкой (score) для сортировки. Используются для рейтингов, очередей с приоритетом (ZADD/ZRANGE).

  5. Хеши (Hashes) - структура "ключ-значение" для хранения объектов (например, профиль пользователя). Позволяет атомарно изменять отдельные поля (HSET/HGET).

  6. Битовые массивы (Bitmaps) - работа с битами строки (SETBIT/GETBIT). Эффективны для подсчета уникальных событий (активные пользователи).

  7. HyperLogLog - вероятностная структура для приблизительного подсчета уникальных элементов (PFADD/PFCOUNT) с фиксированной памятью (~12 КБ).

  8. Geospatial (GEO) - хранение географических координат и поиск ближайших точек (GEOADD/GEORADIUS).

  9. Streams - лог событий с поддержкой групп потребителей (XADD/XREADGROUP). Используется для очередей сообщений, аудита.

В Python с библиотекой redis-py работа выглядит так:

PYTHON
import redis
r = redis.Redis()
r.set('key', 'value') # String
r.lpush('list', 'a') # List
r.sadd('set', 'member') # Set
r.zadd('zset', {'item': 1.0}) # Sorted Set
r.hset('hash', 'field', 'val') # Hash

Каждый тип данных имеет свои команды и оптимальные сценарии, что делает Redis гибким инструментом для кэширования, очередей, аналитики и реального времени.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью