Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Определение Redis
Redis (Remote Dictionary Server) — это **хранилище данных в памяти (in-memory data store)**, которое относится к категории **NoSQL баз данных**. Точнее, это **key-value хранилище** с поддержкой различных структур данных.
Тип БД: In-Memory Key-Value Store
Redis не относится к традиционным реляционным СУБД (как PostgreSQL или MySQL). Вместо этого он представляет собой:
- NoSQL БД — не использует SQL и табличную схему
- Key-value store — хранит данные в виде пар ключ-значение
- In-memory database — данные хранятся в оперативной памяти для максимальной скорости
- Non-relational — не имеет отношений между таблицами
Поддерживаемые структуры данных
Redis не просто хранит строки, а поддерживает богатый набор структур:
# Строки (String)
redis_client.set("key", "value")
# Списки (List)
redis_client.lpush("mylist", "a", "b", "c")
# Множества (Set)
redis_client.sadd("myset", "a", "b", "c")
# Отсортированные множества (Sorted Set)
redis_client.zadd("myzset", {"a": 1, "b": 2})
# Хэши (Hash)
redis_client.hset("myhash", "field1", "value1")
# Потоки (Stream)
redis_client.xadd("mystream", {"field": "value"})
Отличие от классических БД
PostgreSQL / MySQL — реляционные СУБД с постоянным хранилищем на диске
Redis — хранилище в памяти для кэширования и быстрого доступа
Сценарии использования в Python
import redis
from typing import Any
class CacheManager:
def __init__(self, host: str = "localhost", port: int = 6379):
self.client = redis.Redis(host=host, port=port, decode_responses=True)
def cache_result(self, key: str, value: str, ttl: int = 3600) -> None:
"""Кэширование результата с TTL (Time To Live)"""
self.client.setex(key, ttl, value)
def get_cached(self, key: str) -> Any:
"""Получение из кэша"""
return self.client.get(key)
def increment_counter(self, key: str) -> int:
"""Инкрементирование счётчика (атомарная операция)"""
return self.client.incr(key)
Ключевые характеристики
- Скорость — операции выполняются за микросекунды
- TTL (Time To Live) — автоматическое удаление ключей через время
- Персистентность — опционально: RDB снимки или AOF логи
- Репликация — поддержка master-slave архитектуры
- Кластеризация — горизонтальное масштабирование
- Публиши/Подписка — встроенная система обмена сообщениями
Заключение
Redis — это in-memory NoSQL key-value база данных, специализированная на скорости и поддержке различных структур данных. Идеально подходит для кэширования, очередей задач, счётчиков, сессий и real-time приложений.