java Caffeine cache

  • 2020-11-04
  • 浏览 (54)

Caffeine 是一种高性能的缓存库,是基于 Java 8 的最佳缓存框架。

在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache、Caffeine。

比较

Google Guava工具包中的一个非常方便易用的本地化缓存实现,基于LRU算法实现,支持多种缓存过期策略。

EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。

Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代,基于LRU算法实现,支持多种缓存过期策略。

简单使用

public static void main(String[] args) {
      LoadingCache<String, String> build = CacheBuilder.newBuilder().initialCapacity(1).maximumSize(100).expireAfterWrite(1, TimeUnit.DAYS)
          .build(new CacheLoader<String, String>() {
             //默认的数据加载实现,当调用get取值的时候,如果key没有对应的值,就调用这个方法进行加载
             @Override
             public String load(String key)  {
                  return "";
             }
         });
}

参数方法

  • initialCapacity(1) 初始缓存长度为1
  • maximumSize(100) 最大长度为100
  • expireAfterWrite(1, TimeUnit.DAYS) 设置缓存策略在1天未写入过期缓存(后面讲缓存策略)

参考

Caffeine Cache 进程缓存之王
最佳内存缓存框架Caffeine

正文到此结束