本地缓存caffeine

项目中需要用到多级缓存实现高可用,最终方案决定是caffeine+redis

下面是实现步骤
1.引入jar包

      <!--本地缓存-->
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
        </dependency>    

2.增加配置类

@Configuration
public class CacheConfig {

    @Bean
    public Cache<String, Object> caffeineCache() {
        return Caffeine.newBuilder()
                // 设置最后一次写入或访问后经过固定时间过期
                .expireAfterWrite(60, TimeUnit.SECONDS)
                // 初始的缓存空间大小
                .initialCapacity(100)
                // 缓存的最大条数
                .maximumSize(10000)
                .build();
    }

}

3.查询cafefine没有的话,查询redis,后再写入caffeine

 Object value = caffeineCache.get(key, s -> redisTemplate.opsForValue().get(key));

4.最终效果

redis:
接口耗时:0.717, 返回报文:{"data":{},"message":"请求成功","status":200}

caffeine:
接口耗时:0.05, 返回报文:{"data":{},"message":"请求成功","status":200}

可以看到本地缓存性能比redis要强的多
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容