TTL кэша и инвалидация
Управляйте сроком действия и удалением записей
«TTL кэша и инвалидация» — бесплатный урок Spring Boot 4 Microservices & REST APIs на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Spring Boot 4 Microservices & REST APIs, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Spring Boot 4 Microservices & REST APIs содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why TTL Matters
Cached data can go stale. A TTL (time-to-live) automatically expires entries after a set duration, bounding how stale data can get.
Setting a Default TTL
Apply a TTL to all caches via the default configuration.
RedisCacheConfiguration config =
RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(10));Per-Cache TTL
Different data ages at different rates — give each cache its own TTL.
Map<String, RedisCacheConfiguration> configs = Map.of(
"products",
RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(1)),
"prices",
RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofMinutes(1)));Caffeine TTL via Properties
For a local Caffeine cache, set expiry in properties.
spring.cache.caffeine.spec=expireAfterWrite=300s,maximumSize=1000Explicit Invalidation
TTL handles time-based expiry; @CacheEvict handles event-based invalidation when data changes.
@CacheEvict(value = "products", key = "#id")
public void delete(Long id) {
repository.deleteById(id);
}Write-Through Updates
Pair an update with @CachePut so the cache reflects the new value immediately instead of waiting for expiry.
@CachePut(value = "products", key = "#product.id")
public Product update(Product product) {
return repository.save(product);
}Clearing a Whole Cache
After a bulk change, evict all entries to force fresh reads.
@CacheEvict(value = "products", allEntries = true)
public void importBatch(List<Product> items) {
repository.saveAll(items);
}Eviction Policies
When a cache hits its size limit, an eviction policy decides what to remove. Common policies: LRU (least recently used) and LFU (least frequently used).
Bounding Cache Size
Limit memory by capping the number of entries with Caffeine's maximumSize.
spring.cache.caffeine.spec=maximumSize=10000Cache Stampede
When a popular key expires, many requests miss at once and all hit the database — a stampede. Mitigate with short staggered TTLs or refresh-ahead strategies.
Monitoring Hit Rate
Track the cache hit rate (hits ÷ total lookups). A low rate means the cache is not helping — revisit TTL, keys, or whether caching fits the access pattern.
Quick Check
Test your understanding of TTL and invalidation.
Recap
You learned cache expiry and invalidation:
- TTL via
entryTtlbounds staleness - Per-cache TTLs for different data
@CacheEvict/@CachePutfor event-based invalidation- Eviction policies (LRU/LFU), size limits, and stampede awareness
Часто задаваемые вопросы
Урок «TTL кэша и инвалидация» бесплатный?
Да — полный текст урока «TTL кэша и инвалидация» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Spring Boot 4 Microservices & REST APIs, подпишись на CoddyKit PRO. Курс Spring Boot 4 Microservices & REST APIs содержит 4 уроков всего.
Чему я научусь в уроке «TTL кэша и инвалидация»?
Управляйте сроком действия и удалением записей Ты практикуешь Spring Boot 4 Microservices & REST APIs с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Spring Boot 4 Microservices & REST APIs?
Предыдущий опыт не требуется. Spring Boot 4 Microservices & REST APIs на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «TTL кэша и инвалидация»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Spring Boot 4 Microservices & REST APIs?
Да. Каждый урок Spring Boot 4 Microservices & REST APIs включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Абстракция кэширования Spring
- @Cacheable, @CachePut, @CacheEvict
- Redis как провайдер кэша
- TTL кэша и инвалидация