一、使用背景:
在开发中经常用到缓存,首先想到的是redis,但是我们只想缓存少量的数据,并且只是给代码内部使用。redis固然好用,但是每次练级也是需要网络io的,所以本地缓存使用就有必要了。
二、用过的本地缓存:
刚开始了解到guava cache可以作为本地缓存,但是了解到caffeine性能更优于guava cache,而且springboot2.0开始不再支持guava cache了,而是用了caffeine代替。
一张图说明问题:
使用的场景:
1、经常需要查询的少量数据时,比如一些保存在数据库的配置信息使用频繁,可以考虑使用缓存,直接在内存读取,不需要每次查询数据库,减少网络io;
2、调用第三方接口存在重复返回相同结果的时候,如调用高德的逆地理查询接口,由于限制次数,而且存在相同的参数返回结果是一样的,使用缓存减少调用三方接口次数;
当然还有其他情况使用缓存,可以根据实际问题,具体考虑使用。要注意使用的时候过期key的处理问题,防止存储的数据量过大。只做缓存,不当数据库使用
三、怎么定义
不多说,先看看怎么在项目中使用。本次基于springboot使用caffeine
pom引入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>
代码如下:
package com.rxd.vhg.vehicledt.caffeine;
i