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

Какая политика инвалидации кэша на текущем проекте

Мы используем комбинированный подход к инвалидации кэша:

  1. TTL-based инвалидация - устанавливаем разумные сроки жизни кэшированных данных (обычно 5-30 минут) в зависимости от частоты обновления данных.

  2. Event-driven инвалидация - при изменении данных в БД отправляем события, которые триггерят очистку соответствующих кэш-записей.

Пример:

java
@Cacheable(value = "users", key = "#id", ttl = 600)
public User getUserById(Long id) {
    return userRepository.findById(id).orElse(null);
}

@CacheEvict(value = "users", key = "#user.id")
public void updateUser(User user) {
    userRepository.save(user);
    eventPublisher.publishEvent(new UserUpdatedEvent(user.getId()));
}

Для распределенного кэша (Redis) дополнительно используем паттерн Cache-Aside. В критичных к бизнесу сценариях применяем принудительную синхронную инвалидацию.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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