Redis и Memcached — быстрые системы кэширования, хранящие данные в памяти (RAM). Вместо обращения к базе данных (MySQL) каждый раз, часто нужные данные хранятся в RAM, резко ускоряя сайт. Для высоконагруженных сайтов почти обязательны.
Проблема: БД запрашивается каждый раз
Обычный сайт при каждой загрузке берёт данные из MySQL. 1000 пользователей одновременно — 1000 одинаковых запросов. MySQL замедляется, сервер греется. Решение: получить ответ один раз и хранить в кэше.
Memcached — простой и быстрый
Хранит только "ключ-значение". Очень прост, очень быстр. Только в RAM — при выключении сервера данные теряются (но это кэш). Идеален для простого кэша страниц, хранения сессий.
Redis — мощный и многофункциональный
Больше возможностей: списки, hash, set, sorted set. Возможна запись на диск (persistence). Pub/Sub, атомарные операции. Современные проекты часто выбирают Redis.
Что выбрать?
1) Нужен простой кэш — хватит Memcached. 2) Сложные структуры, persistence, очереди, real-time — Redis. 3) Сейчас большинство проектов предпочитает Redis.
В WordPress
Плагин Redis Object Cache + Redis на сервере. Запросы к БД снижаются на 50-80%. На тяжёлых сайтах вроде WooCommerce загрузка ускоряется в 2-3 раза.
В Laravel
Laravel поддерживает Redis нативно. Cache, session, queue, broadcasting — всё через Redis. CACHE_DRIVER=redis в .env.
Хранение сессий
При использовании нескольких серверов (load balancing) сессии нужно централизовать в Redis/Memcached.
Стратегии кэша
1) Cache-aside: сначала из кэша, если нет — из БД и записать в кэш. 2) TTL: срок для каждой записи. 3) Invalidation: очистка кэша при изменении данных.
Установка (Ubuntu)
Redis: apt install redis-server. Memcached: apt install memcached. PHP-расширение: php-redis или php-memcached.
Опыт Сайт.uz
На планах VPS и dedicated Сайт.uz можно установить Redis. На высоконагруженных сайтах клиентов Redis заметно снижает нагрузку на БД.