Caffeine
手动模式
public static void main(String[] args) {
String key = "test";
// 创建 手动模式的缓存
Cache<String, String> cache = Caffeine.newBuilder()
.expireAfterWrite(10, TimeUnit.MINUTES)
.maximumSize(10_000)
.build();
// 检索一个entry,如果没有则为null
System.out.println(cache.getIfPresent("test"));
// 检索一个entry,如果entry为null,则通过key创建一个entry并加入缓存
cache.get(key, k -> createExpensiveGraph(key));
System.out.println(cache.getIfPresent("test"));
// 从缓存中移除
cache.invalidate(key);
System.out.println(cache.getIfPresent("test"));
// 加入缓存
cache.put(key, "graph");
System.out.println(cache.getIfPresent("test"));
}
public static String createExpensiveGraph(String key) {
System.out.println("加入 caffeine 缓存");
return key + "666";
}
参考:https://blog.youkuaiyun.com/e3002/article/details/96474928
https://blog.youkuaiyun.com/Yuan52007298/article/details/86530562?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
应用
caffeine + redis 二级缓存
参考 https://www.jianshu.com/p/d9358e7a6afc