Кофеин - это высокая производительность, почти оптимальная библиотека кэширования. Для получения более подробной информации см. Руководство нашего пользователя и просмотрите документы API для последнего выпуска.
Кеш
Кофеин обеспечивает кэш в памяти с использованием API Google Guava, вдохновленного Guava. Улучшения опираются на наш опыт разработки кеша Гуавы и concurrentLinkedHashmap.
LoadingCache < Key , Graph > graphs = Caffeine . newBuilder ()
. maximumSize ( 10_000 )
. expireAfterWrite ( Duration . ofMinutes ( 5 ))
. refreshAfterWrite ( Duration . ofMinutes ( 1 ))
. build ( key -> createExpensiveGraph ( key ));
Особенности с первого взгляда
Кофеин обеспечивает гибкую конструкцию для создания кэша с комбинацией следующих дополнительных функций:
- автоматическая загрузка записей в кэш, опционально асинхронно
- Выселение на основе размера, когда максимум превышается на основе частоты и рецензии
- Находящее время истечение срока действия записей, измеренное с момента последнего доступа или последней записи
- асинхронно освежается, когда возникает первый устаревший запрос на запись
- Ключи автоматически обернуты в слабые ссылки
- Значения автоматически обернуты в слабые или мягкие ссылки
- уведомление о выселенных (или иных удаленных) записях
- пишет распространяется на внешний ресурс
- накопление статистики доступа к кешу
Кроме того, кофеин предлагает следующие расширения:
- JSR-107 JCache
- Адаптеры гуавы
- Симуляция
Используйте кофеин в сообществе, предоставленном интеграцией:
- Play Framework: Web Framework высокой скорости
- Micronaut: современная каркас с полным стеком
- Весенний кеш: по состоянию на пружину 4.3 & Boot 1.4
- Coroutines: расширение Kotlin Coroutines
- Bootique: быстрая, простая платформа Java
- Quarkus: сверхзвуковая субатомная ява
- Верблюд: двигатель маршрутизации и посредничества
- Скаффейн: обертка Scala для кофеина
- Scalacache: простое кэширование в Scala
- Jhipster: генерировать, разрабатывать, развернуть
- Aedile: котлин -обертка для кофеина
Власти инфраструктура рядом с вами:
- Dropwizard: ОПС, высокоэффективные, RESTFUL APIS
- Кассандра: Управление огромными объемами данных, быстро
- Когерентность: критическая миссия в сетке данных в памяти
- Accumulo: отсортированный, распределенный клавиш/магазин значений
- Кафка: распределенная платформа потоковой передачи событий
- HBASE: распределенный, масштабируемый хранилище больших данных
- Apache Solr: яростно быстрый поиск предприятия
- Infinispan: распределенная сетка данных в памяти
- Redisson: ультрастрабильная сетка данных в памяти
- OpenWhisk: без серверная облачная платформа
- Corfu: платформа консистенции кластера
- Грааль: Groovy Web Framework
- Finagle: расширяемая система RPC
- Neo4j: графики для всех
- Друид: аналитика в реальном времени
В новостях
- Глубокое описание архитектуры кофеина.
- Дизайн современного кеша: часть № 1, часть № 2 (слайды) при высококлассности
- Кофеин представлен как часть исследовательских работ, оценивающих ее новую политику выселения.
- Tinylfu: высокоэффективная политика приема в кеша Гила Эйнзигера, Роя Фридмана, Бена Мэнеса
- Управление адаптивным программным кешем от Гила Эйнзигера, Охад Эйтана, Роя Фридмана, Бена Мэнеса
- Управление кэшами в легком веселье, управление кешем
Скачать
Скачать с Maven Central или зависеть от Gradle:
implementation( " com.github.ben-manes.caffeine:caffeine:3.1.8 " )
// Optional extensions
implementation( " com.github.ben-manes.caffeine:guava:3.1.8 " )
implementation( " com.github.ben-manes.caffeine:jcache:3.1.8 " )
Для Java 11 или выше используйте 3.x
в противном случае использовать 2.x
Смотрите заметки о выпуске для получения подробной информации об изменениях.
Снимки версии разработки доступны в репозитории Sonatype.