caffeine是一个高性能的缓存组件,在需要缓存数据,但数据量不算太大,不想引入redis的时候,caffeine就是一个不错的选择。可以把caffeine理解为一个简单的redis。
1、导入依赖
<!-- https://mvnrepository.com/artifact/com.github.ben-manes.caffeine/caffeine --><dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId><version>2.9.3</version></dependency>
导入是要注意版本,最开始我用的版本是3.1.1,不过启动是的时候会报错,这是因为我用的是jdk1.8,需要降低一下版本,所以就换成了2.9.3
类文件具有错误的版本 55.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
2、创建测试类
public class CaffeineTest {//创建缓存对象并设置过期时间为10秒private static Cache<Integer, String> cache = Caffeine.newBuilder().expireAfterWrite(Duration.ofSeconds(10)).build();public static void main(String[] args) throws InterruptedException {cache.put(1,"张三");cache.put(2,"李四");cache.put(3,"王五");getTest(1);getTest(2);getTest(3);Thread.sleep(5000);getTest(1);getTest(2);getTest(3);Thread.sleep(6000);getTest(1);getTest(2);getTest(3);}private static void getTest(Integer key) {String ifPresent = cache.getIfPresent(key);System.out.println(DateUtil.now() +" : "+ ifPresent);}
}
测试结果
3、测试结果
搞定!