Стратегия кеширования: Многоуровневая оптимизация производительности
В этой статье объясняется, как мы используем кеширование на каждом уровне для обеспечения быстрой загрузки страниц по всему миру.
Проблема: Некешированные запросы медленные
Без кеширования каждая загрузка страницы требует:
-
Запросы к базе данных: Получение данных о товарах, уровнях запасов, ценах
-
Вызовы API: Внешние сервисы для расчета стоимости доставки, платежей
-
Вычисления: Расчет цен, проверка наличия
-
Загрузка изображений: Изображения товаров, миниатюры
Кеширование устраняет повторяющуюся работу, сохраняя результаты для повторного использования.
Решение: Многоуровневое кеширование
Мы используем кеширование на пяти уровнях:
- Браузерный кеш: Устройство пользователя хранит статические ресурсы
- Кеш CDN: Локации CloudFront на границе сети кешируют контент глобально
- Кеш приложения: Valkey хранит часто запрашиваемые данные
- Кеш базы данных: Valkey располагается перед базой данных
- Кеш ИИ: DeepSeek кеширует системные промпты
Уровни кеширования
Кеширование в браузере (CloudFront)
CloudFront обеспечивает браузерное кеширование с соответствующими TTL:
-
Изображения: Долгий TTL (24-72 часа)
-
CSS/JS: Версионирование с обходом кеша
-
Ответы API: Короткий TTL или отсутствие кеша
Кеширование CDN (CloudFront)
CloudFront кеширует контент в граничных локациях:
-
Статические ресурсы: Изображения товаров, CSS, JS
-
Страницы товаров: TTL 24 часа
-
Страницы запросов: TTL 24 часа
-
Ответы API: Без кеширования
Кеширование приложения (Valkey)
Valkey обеспечивает кеширование в памяти:
-
Сессии: Сессии пользователей со скользящим сроком действия
-
Популярные запросы: Наиболее часто искомые термины
-
Автодополнение: Поисковые подсказки
-
Количество товаров: Доступность запасов
-
Сопоставления фраз: Данные для извлечения фильтров
Кеширование базы данных
Valkey располагается перед базой данных:
-
Данные товаров: Кешируются для производительности
-
Стоимости деталей: Кешируются для расчета цен
-
Списки SKU: Кешируются для листингов товаров
-
Манифесты изображений: Кешируются для загрузки изображений
Кеширование ИИ (DeepSeek)
DeepSeek обеспечивает кеширование промптов:
-
Системные промпты: Кешируются для эффективности
-
Попадания в кеш: Сокращают использование токенов
-
Промахи кеша: Генерируют новый контент
Кеширование переводов
Кеширование переводов использует несколько уровней:
-
Valkey: Таблицы фраз кешируются в памяти
-
Файлы: Таблицы фраз хранятся постоянно в JSON-файлах
-
Резервный вариант: Устаревший хэш-кеш для обратной совместимости
Инвалидация кеша
Мы инвалидируем кеш в случаях:
-
Обновления товаров: Инвалидация кеша товаров
-
Изменения запасов: Инвалидация кеша количества товаров
-
Обновления контента: Инвалидация кеша страниц
-
Обновления переводов: Инвалидация кеша переводов
Организация кеша
Кеши Valkey организованы по функциям:
-
Сессии: Состояние аутентификации пользователя
-
Автодополнение: Данные поисковых подсказок
-
Популярные запросы: Часто искомые термины
-
Сопоставления фраз: Данные для извлечения фильтров
-
Стоимости деталей: Данные для расчета цен
Итог
Наша стратегия кеширования обеспечивает:
-
Многоуровневость: Браузер, CDN, приложение, база данных
-
Эффективность: Valkey для быстрого доступа в памяти
-
Умное кеширование: Кеширование промптов ИИ для экономии затрат
-
Надежность: Несколько резервных механизмов