La cafeína es una biblioteca de almacenamiento en caché de alto rendimiento, casi óptima. Para obtener más detalles, consulte nuestra Guía del usuario y explore los documentos de la API para el último lanzamiento.
Cache
La cafeína proporciona un caché en memoria utilizando una API inspirada en Google Guava. Las mejoras se basan en nuestra experiencia en el diseño de la caché de Guava y la concurrencia concurrente.
LoadingCache < Key , Graph > graphs = Caffeine . newBuilder ()
. maximumSize ( 10_000 )
. expireAfterWrite ( Duration . ofMinutes ( 5 ))
. refreshAfterWrite ( Duration . ofMinutes ( 1 ))
. build ( key -> createExpensiveGraph ( key ));
Características de un vistazo
La cafeína proporciona una construcción flexible para crear un caché con una combinación de las siguientes características opcionales:
- Carga automática de entradas en el caché, opcionalmente asíncronamente
- Desalojo basado en el tamaño cuando se excede un máximo en función de la frecuencia y la recencia
- Vestimato de entradas basado en el tiempo, medido desde el último acceso o última escritura
- Actualiza asincrónicamente cuando ocurre la primera solicitud rancia de entrada
- claves envueltas automáticamente en referencias débiles
- valores envueltos automáticamente en referencias débiles o suaves
- Notificación de entradas desalojadas (o eliminadas)
- escrituras propagadas a un recurso externo
- Acumulación de estadísticas de acceso a caché
Además, la cafeína ofrece las siguientes extensiones:
- JSR-107 Jcache
- Adaptadores de guayaba
- Simulación
Use cafeína en una comunidad proporcionada por la comunidad:
- Marco de juego: Marco web de alta velocidad
- Micronaut: un marco moderno y completo
- Spring Cache: a partir de Spring 4.3 y Boot 1.4
- Coroutina: Kotlin Coroutines Extension
- Bootique: una plataforma Java rápida y simple
- Quarkus: Java subatómico supersónico
- Camel: motor de enrutamiento y mediación
- Scaffeine: envoltura de Scala para cafeína
- Scalacache: almacenamiento en caché simple en Scala
- Jhipster: generar, desarrollar, implementar
- Aedile: Kotlin Wrapper para cafeína
Infraestructura de alimentación cerca de usted:
- Dropwizard: API de alto rendimiento, amigables con las operaciones, de alto rendimiento y de alto rendimiento
- Cassandra: gestionar cantidades masivas de datos, rápido
- Coherencia: cuadrícula de datos de misión crítica en la memoria
- Acumulo: una tienda de valor/valor distribuida ordenada
- Kafka: una plataforma de transmisión de eventos distribuidos
- HBase: un almacén de datos de big data distribuido, escalable
- Apache Solr: búsqueda empresarial de forma rápida
- Infinispan: cuadrícula de datos en memoria distribuida
- Redisson: cuadrícula de datos en memoria ultra rápida
- OpenWhisk: plataforma en la nube sin servidor
- CORFU: una plataforma de consistencia de clúster
- Grails: marco web basado en Groovy
- Finagle: sistema RPC extensible
- Neo4J: Gráficos para todos
- Druid: análisis en tiempo real
En las noticias
- Una descripción en profundidad de la arquitectura de la cafeína.
- Diseño de un caché moderno: parte n. ° 1, parte #2 (diapositivas) a alta calidad
- La cafeína se presenta como parte de trabajos de investigación que evalúan su nueva política de desalojo.
- Tinylfu: una política de admisión de caché altamente eficiente de Gil Einziger, Roy Friedman, Ben Manes
- Adaptive Software Cache Management de Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes
- Gestión de caché de tamaño robusto de tamaño sólido por Gil Einziger, Ohad Eytan, Roy Friedman, Ben Manes
Descargar
Descargar desde Maven Central o depender a través de 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 " )
Para Java 11 o superior, use 3.x
de lo contrario use 2.x
Consulte las notas de la versión para obtener detalles de los cambios.
Las instantáneas de la versión de desarrollo están disponibles en el repositorio de instantáneas de Sonatype.