Все заметки
Redis обрабатывает чтение за 0.095 мс и способен обрабатывать до 893 000 запросов в секунду. PostgreSQL читает за 0.65 мс и обрабатывает около 15 000 транзакций в секунду. Redis в 85% быстрее при чтении - но хранит данные в памяти и не предназначен для долгосрочного хранения. Postgres медленнее, но это надёжное хранилище с ACID-гарантиями. Поэтому они дополняют друг друга.
Redis отлично служит кэширующим слоем для данных PostgreSQL. Производительность: Redis даёт чтение за миллисекунды пока PostgreSQL обеспечивает надёжное хранение. Масштабируемость: читаемый трафик уходит с PostgreSQL на Redis. Доступность: кэшированные данные продолжают отдаваться даже во время обслуживания PostgreSQL.
Схема простая:
Это называется Cache-Aside паттерн - самый распространённый способ совместить два инструмента.
PostgreSQL - источник правды. Все данные которые важно сохранить: заметки, пользователи, транзакции, история. Если Redis упадёт - данные никуда не денутся.
Redis - то что читается часто и меняется редко: у меня на сайте это например текущий трек на радио, счётчики просмотров, сессии, популярные запросы. Данные с коротким временем жизни (TTL) которые не страшно потерять при перезапуске.
Redis хранит текущее состояние эфира - какой трек играет, история последних воспроизведений, счётчики. PostgreSQL хранит всю библиотеку треков и полную историю. Каждый запрос к эфиру идёт в Redis - быстро и без нагрузки на базу. А полная история и вся музыкальная база - в Postgres.
Кэширование - это оптимизация, а не фича. Начни просто, измеряй всё и итерируй на основе реальных метрик производительности.

PostgreSQL + Redis — как они работают вместе
Я использую оба инструмента в своих проектах. PostgreSQL практически везде. Redis - для кэширования. Почему два инструмента лучше чем один.
Они решают разные задачи
Redis обрабатывает чтение за 0.095 мс и способен обрабатывать до 893 000 запросов в секунду. PostgreSQL читает за 0.65 мс и обрабатывает около 15 000 транзакций в секунду. Redis в 85% быстрее при чтении - но хранит данные в памяти и не предназначен для долгосрочного хранения. Postgres медленнее, но это надёжное хранилище с ACID-гарантиями. Поэтому они дополняют друг друга.
Как это работает на практике
Redis отлично служит кэширующим слоем для данных PostgreSQL. Производительность: Redis даёт чтение за миллисекунды пока PostgreSQL обеспечивает надёжное хранение. Масштабируемость: читаемый трафик уходит с PostgreSQL на Redis. Доступность: кэшированные данные продолжают отдаваться даже во время обслуживания PostgreSQL.
Схема простая:
Запрос → Redis (есть в кэше?) → да → отдаём данные
→ нет → идём в PostgreSQL → кладём в Redis → отдаём данные
Это называется Cache-Aside паттерн - самый распространённый способ совместить два инструмента.
Что хранить где
PostgreSQL - источник правды. Все данные которые важно сохранить: заметки, пользователи, транзакции, история. Если Redis упадёт - данные никуда не денутся.
Redis - то что читается часто и меняется редко: у меня на сайте это например текущий трек на радио, счётчики просмотров, сессии, популярные запросы. Данные с коротким временем жизни (TTL) которые не страшно потерять при перезапуске.
Реальный пример из моего сервиса с радио
Redis хранит текущее состояние эфира - какой трек играет, история последних воспроизведений, счётчики. PostgreSQL хранит всю библиотеку треков и полную историю. Каждый запрос к эфиру идёт в Redis - быстро и без нагрузки на базу. А полная история и вся музыкальная база - в Postgres.
Кэширование - это оптимизация, а не фича. Начни просто, измеряй всё и итерируй на основе реальных метрик производительности.

Комментарии