1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-ben-manes-caffeine

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Статус сборки Количество тестов Статус покрытия Maven Central JavaDoc Лицензия Stack Overflow Ускорено с помощью Develocity

Caffeine — это библиотека кэширования с высокой производительностью и почти оптимальной эффективностью. Для получения более подробной информации см. наш [пользовательский гайд][users-guide] и просмотрите [API документацию][javadoc] для последней версии.

Кэш

Caffeine предоставляет встроенный кэш с использованием API, вдохновленного Google Guava. Улучшения основаны на нашем опыте проектирования [кэша Guava][guava-cache] и [ConcurrentLinkedHashMap][clhm].```java LoadingCache<Key, Graph> graphs = Caffeine.newBuilder() .maximumSize(10_000) .expireAfterWrite(Duration.ofMinutes(5)) .refreshAfterWrite(Duration.ofMinutes(1)) .build(key -> createExpensiveGraph(key));


#### Основные возможности

Caffeine предлагает гибкое создание кэша с возможностью использования следующих опциональных функций:* [автоматическая загрузка записей][population] в кэш, опционально асинхронно
* [вытеснение на основе размера][size], когда максимальное значение превышено на основе [частоты и свежести][efficiency]
* [истечение времени записи][time] записей, измеряемое с момента последнего доступа или последней записи
* [асинхронное обновление][refresh] при первом запросе устаревшей записи
* ключи автоматически оборачиваются в [слабые ссылки][reference]
* значения автоматически оборачиваются в [слабые или мягкие ссылки][reference]
* [уведомление][listener] вытесненных (или иначе удалённых) записей
* [передача записей][compute] внешнему ресурсу
* накопление статистики доступа к кэшу [статистика][statistics]

Кроме того, Caffeine предлагает следующие расширения:

* [JSR-107 JCache][jsr107]
* [Guava адаптеры][guava-adapter]
* [симуляция][simulator]

Используйте Caffeine в интеграции, предоставленной сообществом:* [Play Framework][play]: Высокопроизводительный веб-фреймворк
* [Micronaut][micronaut]: Современный полносайтовый фреймворк
* [Spring Cache][spring]: Начиная с Spring 4.3 & Boot 1.4
* [Coroutine][caffeine-coroutines]: Расширение Kotlin Coroutines
* [Bootique][bootique]: Быстрая и простая Java платформа
* [Quarkus][quarkus]: Сверхзвуковая Java
* [Camel][camel]: Фреймворк маршрутизации и медиации
* [Scaffeine][scaffeine]: Scala обёртка для Caffeine
* [ScalaCache][scala-cache]: Простое кэширование в Scala
* [JHipster][jhipster]: Генерация, разработка, развертывание
* [Aedile][aedile]: Kotlin обёртка для CaffeineОбеспечивая инфраструктуру рядом с Вами:

* [Dropwizard][dropwizard]: Дружественный к операторам, высокопроизводительный, RESTful API
* [Cassandra][cassandra]: Управление большими объемами данных быстро
* [Coherence][coherence]: Критически важная в памяти сетка данных
* [Accumulo][accumulo]: Отсортированная, распределенная ключ/значение база данных
* [Kafka][kafka]: Распределенная система потоковых событий
* [HBase][hbase]: Распределенная масштабируемая база данных больших данных
* [Apache Solr][solr]: Быстрая корпоративная система поиска
* [Infinispan][infinispan]: Распределенная в памяти сетка данных
* [Redisson][redisson]: Сверхбыстрая в памяти сетка данных
* [OpenWhisk][open-whisk]: Облачная серверная платформа
* [Corfu][corfu]: Платформа согласованности кластера
* [Grails][grails]: Веб-фреймворк на основе Groovy
* [Finagle][finagle]: Расширенная система RPC
* [Neo4j][neo4j]: Графы для всех
* [Druid][druid]: Анализ в реальном времени

### В новостях* Подробное описание архитектуры Caffeine.
  * [Проектирование современного кэша: часть #1][modern-cache-1], [часть #2][modern-cache-2]
    ([слайды][modern-cache-slides]) на [HighScalability][]
* Caffeine представлен как часть исследовательских работ, оценивающих его новую политику вытеснения.
  * [TinyLFU: высокоэффективная политика принятия данных в кэш][tinylfu]
    Гил Эинцигер, Рои Фридман, Бен Мэнс
  * [Адаптивное программное управление кэшем][adaptive-tinylfu]
    Гил Эинцигер, Охад Этан, Рои Фридман, Бен Мэнс
  * [Лёгкое и надёжное управление кэшем с учётом размера][size-tinylfu]
    Гил Эинцигер, Охад Этан, Рои Фридман, Бен Мэнс### Скачать

Скачивайте с [Maven Central](maven) или используйте зависимость через Gradle:

```gradle
implementation("com.github.ben-manes.caffeine:caffeine:3.2.0")

// Необязательные расширения
implementation("com.github.ben-manes.caffeine:guava:3.2.0")
implementation("com.github.ben-manes.caffeine:jcache:3.2.0")

Для Java версий 11 и выше используйте 3.x, в противном случае используйте 2.x.

Подробности о изменениях можно найти в заметках выпусков.Предварительные сборки текущей версии доступны в репозитории предварительных сборок Sonatype. [benchmarks]: https://github.com/ben-manes/caffeine/wiki/Benchmarks [users-guide]: https://github.com/ben-manes/caffeine/wiki [javadoc]: http://www.javadoc.io/doc/com.github.ben-manes.caffeine/caffeine [guava-cache]: https://github.com/google/guava/wiki/CachesExplained [clhm]: https://github.com/ben-manes/concurrentlinkedhashmap [population]: https://github.com/ben-manes/caffeine/wiki/Population [size]: https://github.com/ben-manes/caffeine/wiki/Eviction#size-based [time]: https://github.com/ben-manes/caffeine/wiki/Eviction#time-based [refresh]: https://github.com/ben-manes/caffeine/wiki/Refresh [reference]: https://github.com/ben-manes/caffeine/wiki/Eviction#reference-based [listener]: https://github.com/ben-manes/caffeine/wiki/Removal [compute]: https://github.com/ben-manes/caffeine/wiki/Compute [statistics]: https://github.com/ben-manes/caffeine/wiki/Statistics [simulator]: https://github.com/ben-manes/caffeine/wiki/Simulator [guava-adapter]: https://github.com/ben-manes/caffeine/wiki/Guava [jsr107]: https://github.com/ben-manes/caffeine/wiki/JCache [maven]: https://maven-badges.herokuapp.com/maven-central/com.github.ben-manes.caffeine/caffeine [releases]: https://github.com/ben-manes/caffeine/releases [snapshots]: https://oss.sonatype.org/content/repositories/snapshots/com/github/ben-manes/caffeine/ [effectiveness]: https://github.com/ben-manes/caffeine/wiki/Efficiency [tinylfu]: https://dl.acm.org/doi/10.1145/3149371?cid=99659224047 [adaptive-tinylfu]: https://dl.acm.org/doi/10.1145/3274808.3274816?cid=99659224047 [size-tinylfu]: https://dl.acm.org/doi/10.1145/3507920?cid=99659224047 [modern-cache-1]: http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html [modern-cache-2]: http://highscalability.com/blog/2019/2/25/design-of-a-modern-cachepart-deux.html [modern-cache-slides]: https://docs.google.com/presentation/d/1NlDxyXsUG1qlVHMl4vsUUBQfAJ2c2NsFPNPr2qymIBs [HighScalability]: http://highscalability.com [spring]: https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#cache-store-configuration-caffeine [scala-cache]: https://github.com/cb372/scalacache [scaffeine]: https://github.com/blemale/scaffeine [kafka]: https://kafka.apache.org[hbase]: https://hbase.apache.org [cassandra]: http://cassandra.apache.org [solr]: https://solr.apache.org/ [infinispan]: https://infinispan.org [neo4j]: https://github.com/neo4j/neo4j [finagle]: https://github.com/twitter/finagle [druid]: https://druid.apache.org/docs/latest/configuration/index.html#cache-configuration [jhipster]: https://www.jhipster.tech/ [open-whisk]: https://openwhisk.apache.org/ [camel]: https://github.com/apache/camel/blob/master/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc [coherence]: https://docs.oracle.com/en/middleware/standalone/coherence/14.1.1.2206/develop-applications/implementing-storage-and-backing-maps.html#GUID-260228C2-371A-4B91-9024-8D6514DD4B78 [corfu]: https://github.com/CorfuDB/CorfuDB [micronaut]: https://docs.micronaut.io/latest/guide/index.html#caching [play]: https://www.playframework.com/documentation/latest/JavaCache [redisson]: https://github.com/redisson/redisson [accumulo]: https://accumulo.apache.org [dropwizard]: https://www.dropwizard.io [grails]: https://grails.org [quarkus]: https://quarkus.io [aedile]: https://github.com/sksamuel/aedile [bootique]: https://bootique.io/ [caffeine-coroutines]: https://github.com/be-hase/caffeine-coroutines

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Caffeine — это высокопроизводительная, близкая к оптимальной кэш-библиотека, написанная на Java 8. Caffeine использует API, вдохновлённый Google Guava, для обеспечения кэширования в памяти. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-ben-manes-caffeine.git
git@api.gitlife.ru:oschina-mirror/mirrors-ben-manes-caffeine.git
oschina-mirror
mirrors-ben-manes-caffeine
mirrors-ben-manes-caffeine
master