缓存问题

面试中,我们经常被问到各种缓存问题,今天在这里就花些时间总结一下。

1,缓存击穿
    指在缓存中,某一个key被访问的非常频繁,在这个key失效的一瞬间,大量请求过来,导致请求直接查询数据库,对数据库造成异常的压力,甚至会造成数据库挂掉。

解决办法:

办法1:缓存永不过期。依然有大量请求过来或预期大量并发请求会过来,那设置一个较短生存周期的缓存有什么意义呢?还不如直接让缓存永不过期。

办法2:加一个互斥锁。

2,缓存穿透

指的是缓存和数据库中都不存在的数据,而用户不断发起请求,造成数据库压力过大。
解决办法:

1,接口层增加权限校验;(排除不合法攻击者)

2,缓存和数据库中都获取不到的数据,可以在缓存中设置一个key-value为key-null,缓存的有效时间可以适当设置一下,如3s,5s。(解决公司内部不合理的大量访问)
3,缓存雪崩

缓存中大批量的缓存数据几乎同时过期,导致直接查询数据库,造成数据库压力过大或直接宕机。
解决办法:

1,缓存的过期时间随机设置;

2,设置数据永不过期;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值