Встречается на собеседованиях • сегодня
Какую интересную задачу выполнял на прошлом проекте
Разрабатывал систему динамического кэширования для высоконагруженного 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 раз.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы