TGViewer
Чашечка Java Чашечка Java @a_cup_of_java · 8.37K subscribers
Post #7249 1.67K
Библиотека для кэширования Caffeine: анализ кода

То и дело, прожигая время за чтением reddit, я натыкаюсь на очередной пост, в котором упоминается метод S3 FIFO и упоминается, что он лучше LRU (вытеснение реже всего используемых значений) — потому, что даёт более низкий процент промахов кэша. Видные компании, в частности, RedPandas, Rising Wave и Cloudflare уже внедрили S3 FIFO у себя на различных мощностях, что только подогрело мой интерес к нему. Кэши — чертовски интересная тема, а по работе мне приходится сильно полагаться на работу с кэшами при обслуживании нескольких сервисов. Так что я был уверен, что рано или поздно мне потребуется протестировать S3 FIFO или, как минимум, удостовериться, что я понимаю ключевые идеи, заложенные в этой технологии.

Правда, казалось, что рановато с головой погружаться в изучение нового подхода к кэшированию, пока ещё досконально не разобрался в аналогичной системе, с которой приходится иметь дело на работе сейчас. У нас в команде для работы с кэшированием используется библиотека Caffeine, и, положа руку на сердце, я не ориентировался в её внутреннем устройстве, не пытался проверить, можно ли в ней что-нибудь подкрутить, и есть ли в ней параметры, поддающиеся тонкой настройке. В этой статье я попробую законспектировать мои изыскания и рассказать, как на собственном опыте разбирался во внутреннем устройстве библиотеки Caffeine.

Все желающие приглашаются в путешествие с разбором сложностей одной из наиболее востребованных систем кэширования, используемых в мире. Будь вы бывалый инженер или просто новичок, интересующийся продвинутыми механизмами кэширования, это исследование прольёт вам свет на многие вопросы и подведёт к важным практическим выводом. Поехали!


Читать: https://habr.com/ru/articles/896266/?utm_campaign=896266

@a_cup_of_java | Другие наши каналы
More from @a_cup_of_java
  1. Oct 2, 2026JDK 26: измеряем затраты CPU на сборку мусора JDK 26 добавляет MemoryMXBean.getTotalGcCpuT…
  2. Oct 1, 2026Как измерить экономию памяти от компактных заголовков в Java 27 В Java 27 HotSpot по умолч…
  3. Oct 1, 2026Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции BoxLang Spring Boot Start…
  4. Oct 1, 2026JDK 25 и G1: почему Arrays.fill замедлился в 265 раз В JMH-тесте на Apple M4 Max заполнени…
  5. Sep 30, 2026Как настроить MFA в Spring Security 7 для приложения и отдельных эндпоинтов Spring Securit…
  6. Sep 30, 2026Как StructuredTaskScope в JDK 27 отменяет лишнюю работу при сбое Два независимых вызова к…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →