# alibaba/jetcache

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/alibaba-jetcache).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

5,590 stars · 1,086 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/alibaba/jetcache
- awesome-repositories: https://awesome-repositories.com/repository/alibaba-jetcache.md

## Topics

`cache` `java` `jcache` `redis` `spring` `spring-cache`

## Description

JetCache is a Java caching framework that provides a unified interface for managing application data. It functions as a two-level cache manager, coordinating local in-memory storage and remote distributed caches to reduce network latency and improve retrieval speeds.

The project is distinguished by its declarative caching library, which uses annotations to automate the storage, expiration, and invalidation of method results. It includes a distributed cache synchronizer to maintain consistency by invalidating local entries across cluster instances and a distributed locking tool to coordinate access to shared resources.

The framework covers a broad range of performance and stability capabilities, including non-blocking asynchronous retrieval, automatic background cache refreshing, and request collapsing to prevent cache penetration. It also provides programmatic cache management, pluggable serialization strategies, and security features such as allow-list deserialization filtering.

## Tags

### Data & Databases

- [Multi-level Caching](https://awesome-repositories.com/f/data-databases/multi-level-caching.md) — Coordinates a fast local in-memory layer with a persistent remote distributed store to optimize latency and scalability.
- [Method Result Caches](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching-strategies/query-result-caching/method-result-caches.md) — Caches function return values using annotations with configurable expiration and automatic invalidation logic. ([source](https://github.com/alibaba/jetcache/blob/master/readme.MD))
- [Declarative Method Caches](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/caching-performance/caching-strategies/query-result-caching/method-result-caches/declarative-method-caches.md) — Provides a declarative caching library that uses annotations to automate the caching and invalidation of method results.
- [Distributed Cache Synchronizations](https://awesome-repositories.com/f/data-databases/distributed-cache-synchronizations.md) — The project removes local cached data across all running processes immediately after a data update occurs. ([source](https://github.com/alibaba/jetcache/blob/master/readme.MD))
- [Distributed Cache Synchronizers](https://awesome-repositories.com/f/data-databases/distributed-state-synchronizers/distributed-cache-synchronizers.md) — Broadcasts invalidation messages across a cluster to keep local memory caches consistent.
- [Annotation-Based Caching](https://awesome-repositories.com/f/data-databases/in-memory-caches/volatile-metric-caches/declarative-caching-strategies/annotation-based-caching.md) — Uses Java annotations to automate data caching, expiration, and invalidation of method results.
- [Unified Cache Interfaces](https://awesome-repositories.com/f/data-databases/unified-cache-interfaces.md) — Standardizes interactions with multiple caching backends through a single, consistent interface. ([source](https://github.com/alibaba/jetcache/blob/master/AGENTS.md))
- [Data Serialization](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization.md) — Provides pluggable serialization strategies for controlling how keys and values are encoded for storage. ([source](https://github.com/alibaba/jetcache#readme))
- [Pluggable Serializers](https://awesome-repositories.com/f/data-databases/data-serialization-formats/data-formats/object-serializers/pluggable-serializers.md) — Allows custom key conversion and value encoding implementations to decouple data storage from specific object formats.
- [Local Cache Synchronization](https://awesome-repositories.com/f/data-databases/distributed-state-synchronizers/distributed-cache-synchronizers/local-cache-synchronization.md) — Broadcasts invalidation messages across a cluster to keep local memory caches consistent with remote updates.
- [Penetration Preventions](https://awesome-repositories.com/f/data-databases/in-memory-caches/penetration-preventions.md) — Implements request collapsing to prevent cache penetration by restricting data-loading to one thread per instance during misses. ([source](https://github.com/alibaba/jetcache/blob/master/introduce_CN.md))
- [Non-blocking Caches](https://awesome-repositories.com/f/data-databases/multi-level-caching/block-caches/non-blocking-caches.md) — Uses future-based patterns to fetch cache entries asynchronously without stalling the main application execution thread.
- [Programmatic Cache Access](https://awesome-repositories.com/f/data-databases/programmatic-cache-access.md) — Manages cached items manually using a map-like interface to get, put, and remove specific data entries. ([source](https://github.com/alibaba/jetcache/blob/master/introduce_CN.md))

### Software Engineering & Architecture

- [Declarative Caching](https://awesome-repositories.com/f/software-engineering-architecture/declarative-caching.md) — The project enables triggering data caching, updates, and invalidations using annotations attached to specific method executions. ([source](https://github.com/alibaba/jetcache/blob/master/AGENTS.md))
- [Caching Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/caching-frameworks.md) — Functions as a comprehensive Java caching framework with a unified interface and declarative capabilities.
- [Asynchronous Operation Execution](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-operation-execution.md) — Fetches and stores data using non-blocking asynchronous operations when using compatible distributed clients. ([source](https://github.com/alibaba/jetcache/blob/master/docs/EN/Readme.md))
- [Request Collapsing](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-synchronization-primitives/fiber-synchronization/promise-based/request-collapsing.md) — Ensures only one thread per instance loads a specific missing key from the backend to prevent cache penetration.
- [Background Cache Refresh](https://awesome-repositories.com/f/software-engineering-architecture/service-discovery-registries/registry-client-caching/background-cache-refresh.md) — Updates stale cache entries in the background based on defined policies to minimize request latency. ([source](https://github.com/alibaba/jetcache/blob/master/introduce_CN.md))

### Part of an Awesome List

- [Remote Caching and Execution](https://awesome-repositories.com/f/awesome-lists/data/remote-caching-and-execution.md) — Coordinates data storage across local memory and remote systems using configurable expiration and size limits. ([source](https://github.com/alibaba/jetcache/blob/master/docs/EN/Config.md))
- [Java 项目](https://awesome-repositories.com/f/awesome-lists/more/java.md) — Listed in the “Java 项目” section of the Great Open Source Project awesome list.

### DevOps & Infrastructure

- [Distributed Locks](https://awesome-repositories.com/f/devops-infrastructure/distributed-locks.md) — Provides mechanisms for coordinating access to shared resources across a cluster to prevent write conflicts and backend spikes.

### Programming Languages & Runtimes

- [Whitelisted Deserialization](https://awesome-repositories.com/f/programming-languages-runtimes/object-deserialization/whitelisted-deserialization.md) — Secures the reconstruction of cached objects by validating classes against a predefined allow-list during deserialization. ([source](https://github.com/alibaba/jetcache/blob/master/docs/EN/Config.md))
