카페인은 최적의 캐싱 라이브러리 근처의 고성능입니다. 자세한 내용은 사용자 안내서를 참조하고 최신 릴리스를 위해 API 문서를 찾아보십시오.
은닉처
카페인은 Google Guava에서 영감을 얻은 API를 사용하여 메모리 인 캐시를 제공합니다. 개선 사항은 Guava의 캐시와 동시 링크드 해쉬 맵을 설계 한 경험을 이끌어냅니다.
LoadingCache < Key , Graph > graphs = Caffeine . newBuilder ()
. maximumSize ( 10_000 )
. expireAfterWrite ( Duration . ofMinutes ( 5 ))
. refreshAfterWrite ( Duration . ofMinutes ( 1 ))
. build ( key -> createExpensiveGraph ( key ));
한 눈에 특징
카페인은 유연한 구성을 제공하여 다음 옵션 기능의 조합으로 캐시를 만듭니다.
- 캐시에 항목의 자동로드, 선택적으로 비동기 적으로
- 주파수와 기대에 따라 최대 값을 초과 할 때 크기 기반 퇴거
- 마지막 액세스 또는 마지막 쓰기 이후 측정 된 항목의 시간 기반 만료
- 항목에 대한 첫 번째 부실한 요청이 발생하면 비동기 적으로 새로 고침
- 키는 자동으로 약한 참조로 포장됩니다
- 값은 약하거나 부드러운 참조로 자동으로 포장됩니다
- 퇴거 (또는 다른 방식으로 제거 된) 항목에 대한 알림
- 외부 리소스로 전파됩니다
- 캐시 액세스 통계의 축적
또한 카페인은 다음과 같은 확장을 제공합니다.
- JSR-107 Jcache
- 구아바 어댑터
- 시뮬레이션
커뮤니티에서 카페인을 사용한 통합 :
- 재생 프레임 워크 : 고속 웹 프레임 워크
- Micronaut : 현대적이고 풀 스택 프레임 워크
- 스프링 캐시 : 봄 4.3 및 부팅 1.4 기준
- 코 루틴 : Kotlin Coroutines 확장
- Bootique : 빠르고 간단한 Java 플랫폼
- Quarkus : 초음속 아 원자 자바
- 낙타 : 라우팅 및 중재 엔진
- 스페인 : 카페인을위한 스칼라 포장지
- Scalacache : Scala의 간단한 캐싱
- jhipster : 생성, 개발, 배포
- Aedile : 카페인을위한 Kotlin 래퍼
근처의 전원 인프라 :
- Dropwizard : OPS 친화적이고 고성능, 편안한 API
- CASSANDRA : 대량의 데이터를 빠르게 관리합니다
- 일관성 : 미션 크리티컬 메모리 데이터 그리드
- Accumulo : 정렬 된 분산 키/가치 저장소
- Kafka : 분산 이벤트 스트리밍 플랫폼
- HBASE : 분산 된 확장 가능한 빅 데이터 스토어
- 아파치 솔 (Apache Solr) : 끔찍하게 빠른 엔터프라이즈 검색
- Infinispan : 분산 된 메모리 데이터 그리드
- REDISSON : 초고속 인 메모리 데이터 그리드
- OpenWhisk : 서버리스 클라우드 플랫폼
- Corfu : 클러스터 일관성 플랫폼
- 성배 : 그루비 기반 웹 프레임 워크
- Finagle : 확장 가능한 RPC 시스템
- NEO4J : 모든 사람을위한 그래프
- 드루이드 : 실시간 분석
뉴스에서
- 카페인의 건축에 대한 심층적 인 설명.
- 최신 캐시 설계 : 파트 #1, 파트 #2 (슬라이드)가 높은 경화 가능성
- 카페인은 새로운 퇴거 정책을 평가하는 연구 논문의 일부로 제시됩니다.
- Tinylfu : Gil Einziger, Roy Friedman, Ben Manes의 매우 효율적인 캐시 입학 정책
- Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes의 적응 형 소프트웨어 캐시 관리
- Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes의 경량 강력한 크기 인식 캐시 관리
다운로드
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의 스냅 샷 저장소에서 사용할 수 있습니다.