Встречается на собеседованиях • сегодня

​​​​​​​Как исправить ошибку пустого кэша при одновременной работе сервиса с глобальным кэшем в двух контейнерах

Используйте distributed cache (Redis, Hazelcast) или синхронизацию через БД. Для локального кэша в Spring можно:

  1. Добавить синхронизацию через @CacheEvict:
java
@CacheEvict(value = "myCache", allEntries = true)
public void refreshCache() {
    // логика обновления
}
  1. Использовать CacheManager с общим хранилищем:
java
@Bean
public CacheManager cacheManager() {
    return new RedisCacheManager(redisTemplate);
}
  1. Для простых случаев - синхронизировать методы:
java
@Cacheable("myCache")
public synchronized Data getData() {
    // логика
}

Основные подходы:

  • Общее хранилище кэша (Redis)
  • События обновления кэша между инстансами
  • TTL для автоматического обновления
  • Read-through/write-through стратегии
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы