1. 前因
因为我们的一个破网站要实现发送短信验证码的需求, 需要对发短信的频率进行限制, 于是就用到了定时缓存, 意思就是将 电话号码(key) 和短信验证码(value) 保存到内存中吧, 要保存 1分钟, 当用户要调用发短信时接口时, 我们先到内存根据电话号码找value是否存在; 因此我们就实现到了1分钟后才能重新发送的功能, 别问我为什么, 问就是穷 !!
实现缓存可以 用Redis , Ehcache, Hutool等工具 , 为啥用 Caffeine 呢 ? 因为 简洁强大 !!
you see see -->
不用想, 最高的就是 caffeine
2. 使用
2.1 引入 Maven依赖
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
2.2 使用, 创建一个缓存组
//创建一个缓存组
Cache<String, String> cache = Caffeine.newBuilder()
.expireAfterWrite(1, TimeUnit.MINUTES)//写入过期策略, 写入后保存一分钟
.maximumSize(100) //最大缓存数
.build();
2.3 定时存储一组数据
cache.put(key, value);
2.4 从内存中获取数据, 已过期或不存在 结果为null
String value = cache.get(key, value);
好了简单使用就是这样, 已经达成我上面的需求了 更多使用参考:
[译] 高性能 Java 缓存库 — Caffeine