Boost Spring Boot Performance with Cache2k: Setup, Benchmarks, and Advanced Config

Discover how to integrate the lightweight, high-performance Cache2k library into Spring Boot 2.7, explore benchmark results that surpass Ehcache3 and Caffeine, and learn basic and advanced configuration techniques—including custom builder settings and Micrometer metrics—for optimal in-memory caching.

Java Architecture Diary
Java Architecture Diary
Java Architecture Diary
Boost Spring Boot Performance with Cache2k: Setup, Benchmarks, and Advanced Config

When discussing Java in-memory cache libraries, the well-known Ehcache and the newer Caffeine are often mentioned, and Spring Boot 2.7 now adds official dependency management and auto-configuration for Cache2k, confirming its recognition by the Spring team.

Cache2k is an open-source, lightweight, high-performance Java memory cache library.

Benchmarks show that its throughput significantly exceeds that of Ehcache3 and Caffeine.

1. How to Use

① Add Dependency

<!-- springboot 2.7 already defines cache2k version globally, no need to specify version -->
<dependency>
    <groupId>org.cache2k</groupId>
    <artifactId>cache2k-spring</artifactId>
</dependency>

② Configure Cache Type

③ Spring Cache Annotation Example

@Cacheable(value = "demo", key = "#key")
public String get(String key) {
    return "success";
}

2. Advanced Configuration

Personalized Parameters

Implement the Cache2kBuilderCustomizer interface to customize cache settings.

public class CustomCache2kBuilderCustomizer implements Cache2kBuilderCustomizer {
    /**
     * Customize the default cache settings.
     *
     * @param builder the builder to customize
     */
    @Override
    public void customize(Cache2kBuilder<?, ?> builder) {
        // custom logic
    }
}

Micrometer Metrics Monitoring

<dependency>
  <groupId>org.cache2k</groupId>
  <artifactId>cache2k-micrometer</artifactId>
</dependency>

Expose key cache statistics that can be integrated with Prometheus.

Cache{database}(size=50003, capacity=50000, get=102876307, miss=1513517, put=0, load=4388352, reload=0, heapHit=101362790, refresh=2874835, refreshFailed=42166, refreshedHit=2102885, loadException=0, suppressedException=0, new=1513517, expire=587294, remove=8156, clear=0, removeByClear=0, evict=868064, timer=3462129, goneSpin=0, hitRate=98.52%, msecs/load=0.425, asyncLoadsStarted=2874835, asyncLoadsInFlight=0, loaderThreadsLimit=8, loaderThreadsMaxActive=8, created=2016-12-02 03:41:34.367, cleared=-, infoCreated=2016-12-02 14:34:34.503, infoCreationDeltaMs=21, collisions=8288, collisionSlots=7355, longestSlot=5, hashQuality=83, noCollisionPercent=83, impl=HeapCache, eviction0(impl=ClockProPlusEviction, chunkSize=11, coldSize=749, hotSize=24252, hotMaxSize=24250, ghostSize=12501, coldHits=11357227, hotHits=38721511, ghostHits=294065, coldRunCnt=444807, coldScanCnt=698524, hotRunCnt=370773, hotScanCnt=2820434), eviction1(impl=ClockProPlusEviction, chunkSize=11, coldSize=778, hotSize=24224, hotMaxSize=24250, ghostSize=12501, coldHits=11775594, hotHits=39508458, ghostHits=283324, coldRunCnt=423258, coldScanCnt=674762, hotRunCnt=357457, hotScanCnt=2689129), evictionRunning=0, keyMutation=0)

Summary

The Cache2k JAR is only about 400 KB and has no additional dependencies, making it suitable for Android projects.

Despite performance comparable to Caffeine, it is less popular in China due to limited local documentation.

References

Cache2k: https://cache2k.org

Benchmarks: https://cache2k.org/benchmarks.html

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

javaSpring BootCache2k
Java Architecture Diary
Written by

Java Architecture Diary

Committed to sharing original, high‑quality technical articles; no fluff or promotional content.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.