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

Какую интересную задачу выполнял на прошлом проекте

Разрабатывал систему динамического кэширования для высоконагруженного API. Основная сложность была в балансировке между актуальностью данных и производительностью.

Использовал Caffeine + Redis двухуровневый кэш:

java
@Bean
public CacheManager cacheManager() {
    CaffeineCache caffeineCache = new CaffeineCache("local", 
        Caffeine.newBuilder()
            .expireAfterWrite(10, TimeUnit.SECONDS)
            .maximumSize(1000)
            .build());
text
RedisCacheManager redisCacheManager = RedisCacheManager
    .builder(redisConnectionFactory)
    .cacheDefaults(RedisCacheConfiguration.defaultCacheConfig()
        .entryTtl(Duration.ofMinutes(5)))
    .build();

return new TieredCacheManager(caffeineCache, redisCacheManager);

}

text
При запросе сначала проверялся локальный кэш (Caffeine), затем распределённый (Redis), и только потом БД. Это дало 40% снижение нагрузки на БД и ускорило 95% запросов в 3-5 раз.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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