Guava Cache 内存缓存使用心得

本文探讨了Guava Cache防止缓存穿透的方法,介绍了如何进行缓存容量管理和过期策略设置,包括基于数量和权重的管理。同时,讲解了批量缓存加载、并发控制以及线上缓存治理,确保高并发下的系统稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、 不存在缓存穿透

缓存穿透是指查询一个一定不存在的数据,由于缓存中没有数据,则会穿透到存储层去查询数据(存储层返回null则不写入缓存),这将导致
这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。使用Guava Cache使用CacheLoader去加载数据,可以看到Guava不允许返回值是null,所以就不存在缓存穿
透的问题。业务实现这必须自己将null包装成对象,比如JDK8中的Optional。

在这里插入图片描述

2、缓存容量管理

内存空间是有限的,一些不用的缓存数据需要及时清除,否则容器导致内存溢出。guava最简单一种管理方式是:基于缓存数据个数,让缓存条目始终不能超过一个上限。
在这里插入图片描述<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Think_Higher

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值