🔖 Spring Boot + Redis + PostgreSQL: кэширование за 15 минут
Ускорение API в 300 раз!
📎 Результат
Без кэша: 3000 мс
С Redis: 10 мс
🔸 Что нужно?
Зависимости:
spring-boot-starter-data-redis + jedis
Конфигурация:
RedisTemplate + CacheManager + @EnableCaching
📝 5 аннотаций
@Cacheable — кэширует результат (GET)
@CacheEvict — очищает кэш (POST/PUT/DELETE)
@CachePut — обновляет кэш
@Caching — группирует операции
@CacheConfig — настройки класса
🔸 Как работает?
1-й запрос: Redis пусто → БД → сохраняем в кэш → 3000 мс
2-й запрос: Redis → 10 мс
Изменение: @CacheEvict очищает кэш
💡 3 стратегии
Cache-Aside: @Cacheable (популярная)
Write-Through: @CachePut (актуальные данные)
Invalidation: @CacheEvict (сложная)
🔸 Best Practices
✅ Кэшируйте медленные запросы (> 100 мс)
✅ Очищайте при изменениях
✅ Используйте TTL
✅ Мониторьте hit rate (> 70%)
❌ Не забывайте инвалидацию
🔸 Подводные камни
Thundering Herd: все в БД → cache warming
Memory Limits: переполнение → eviction policies
Serialization: объекты Serializable
🔸 Результаты
Без кэша: 100 запросов = 300 сек, нагрузка 100%
С кэшем: 100 запросов = 4 сек, нагрузка 1%
Ускорение в 75 раз!
Итог ⬇️
5 аннотаций + простая настройка = прирост в 75-300 раз. Must-have для production.
📎 Статья
🎙 Новости
📝 База вопросов
Post #295
82
