JetCache is a Java cache abstraction which provides consistent use for various caching solutions.
It provides more powerful annotation than that in Spring Cache. The annotation in JetCache supports native TTL,
two level caching, and distributed automatically refreshment, also you can operate Cache
instance by hand code.
Presently There are four implements: RedisCache
, TairCache
(not open source on github), CaffeineCache
(in memory), a simple LinkedHashMapCache
(in memory).
Full features of JetCache:
- Operate cache through consistent Cache API.
- Declarative method caching using annotation with TTL(Time To Live) and two level caching support
- Create & configure
Cache
instance using annotation - Automatically collect access statistics for
Cache
instance and method cache - The policy of key generation and value serialization can be customized
- Distributed cache automatically refreshment and distributed lock. (2.2+)
- Asynchronous access using Cache API (2.2+, with redis lettuce client)
- Spring Boot support
- JDK1.8
- Spring Framework4.0.8+ (optional, with annotation support)
- Spring Boot1.1.9+ (optional)
see samples directory of the repository.
- Getting Started
- Basic Cache API
- Initiate
Cache
instance using CacheManager - Enable method caching using annotation
- Configuration details
- Advanced Cache API
- Redis support (using either of bellows)
- Using jedis client
- Using lettuce client
- Using redisson client
- Spring data redis (document needed)
- In-memory
Cache
implements: LinkedHashMapCache and CaffeineCache - Statistics
- Builder API: If you do not use Spring Framework or want to construct
Cache
instance by hand coding - For upgrade see Changelog and Compatibility Notes
- Repository Map: a visual introduciton to the repository
- jetcache-anno-api: define annotation and constants, no transitive dependencies. If you want to add JetCache annotation to your API artifact without introduce a lot of dependencies, you use jetcache-anno-api.
- jetcache-core: core api, configuration
Cache
instance by hand coding. It also provide two in-memory implementationsLinkedHashMapCache
andCaffeineCache
. It does not depends on Spring. - jetcache-anno: @CreateCache and @Cached annotation implements.
- jetcache-redis: redis support using jedis client.
- jetcache-redis-lettuce (JetCache2.3+): redis support using lettuce client, implements JetCache asynchronous API.
- jetcache-starter-redis: Spring Boot style starter for redis using jedis.
- jetcache-starter-redis-lettuce (JetCache2.3+): Spring Boot style starter for redis using lettuce.