Кэширование работает по слоям. Чем ближе кэш к пользователю, тем быстрее ответ, но дороже хранение. Чем дальше — дешевле, но нужна стратегия на случай устаревания.
Браузерный кэш — самый дешёвый. Файлы лежат на диске клиента. Проблема: нужны правильные HTTP-заголовки (Cache-Control, ETag). Без них браузер каждый раз лезет на сервер. Установи Cache-Control: max-age=31536000 для статики и max-age=3600 для динамики. Используй versioning (добавляй хеш в имя файла) чтобы форсить обновление при нужде.
CDN-кэш — держит копии контента на серверах по всему миру. Пользователь из Бангкока получает файл от ближайшего узла, а не от твоего сервера в Москве. Экономит трафик и радикально снижает latency. Настрой правила: статика — на месяцы, HTML — на минуты, API — не кэшируй или кэшируй по условиям.
Серверный кэш — Redis или Memcached. Сохраняешь результаты запросов, чтобы не ломать БД на каждый клик. Но тут появляется инвалидация: если данные изменились, кэш устарел. Используй TTL (время жизни записи) вместо "вечного" кэша. Для критичных данных — кэшируй с короткой жизнью (5-10 минут).
Кэш БД — индексы, буферпулы, query cache. На уровне СУБД. Обычно работает автоматически, но стоит знать: если у тебя маленький буфферпул, БД будет постоянно читать с диска. Выделяй памяти адекватно.
Золотое правило: кэшируй многократно читаемые данные, которые редко меняются. Не кэшируй персональное (логины, баланс счёта) без инвалидации. Начни с браузерного кэша и CDN — результат почувствуешь сразу, затрат минимум.
---
**Подсчёт символов (без HTML):**
Кэш на разных уровнях спасает скорость. Вот где его ставить, чтобы не переплачивать
Кэширование работает по слоям. Чем ближе кэш к пользователю, тем быстрее ответ, но дороже хранение. Чем дальше — дешевле, но нужна стратегия на случай устаревания.
Браузерный кэш — самый дешёвый. Файлы лежат на диске клиента. Проблема: нужны правильные HTTP-заголовки (Cache-Control, ETag). Без них браузер каждый раз лезет на сервер. Установи Cache-Control: max-age=31536000 для статики и max-age=3600 для динамики. Используй versioning (добавляй хеш в имя файла) чтобы форсить обновление при нужде.
CDN-кэш — держит копии контента на серверах по всему миру. Пользователь из Бангкока получает файл от ближайшего узла, а не от твоего сервера в Москве. Экономит трафик и радикально снижает latency. Настрой правила: статика — на месяцы, HTML — на минуты, API — не кэшируй или кэшируй по условиям.
Серверный кэш — Redis или Memcached. Сохраняешь результаты запросов, чтобы не ломать БД на каждый клик. Но тут появляется инвалидация: если данные изменились, кэш устарел. Используй TTL (время жизни записи) вместо "вечного" кэша. Для критичных данных — кэшируй с короткой жизнью (5-10 минут).
Кэш БД — индексы, буферпулы, query cache. На уровне СУБД. Обычно работает автоматически, но стоит знать: если у тебя маленький буфферпул, БД будет постоянно читать с диска. Выделяй памяти адекватно.
Золотое правило: кэшируй многократно читаемые данные, которые редко меняются. Не кэшируй персональное (логины, баланс счёта) без инвалидации. Начни с браузерного кэша и CDN — результат почувствуешь сразу, затрат минимум.
**Итого: 988 символов. ✓ В пределах нормы (600-1000).**
Кустов о хостинге и скорости
@kustov_hosting_speed
Кэш на разных уровнях спасает скорость. Вот где его ставить, чтобы не переплачивать
Этот пост опубликован в Telegram-канале Кустов о хостинге и скорости. Подписаться можно по ссылке: @kustov_hosting_speed.