分布式缓存的四大痛点

目前开发中经常用到的缓存,是我们必不可缺的,他大大的提高了我们整个项目的响应速度和并发量。但是带来好处的同时,也给我们带了了新的问题:缓存穿透、缓存击穿、缓存雪崩以及缓存一致性这么四个问题,也是分布式缓存的四大痛点!
# 缓存穿透
什么叫缓存穿透呢?

缓存穿透:就是请求在缓存中没有命中,去请求数据库。

缓存穿透带来的危害就是,假如他一直请求,找不到这个数据,便会去请求数据库,不断的请求就会造成服务的性能故障,导致服务宕机。

这里说一种最简单的解决方案。当在数据库中查不到数据,我们就将null存在缓存中,然后赋值一个过期时间即可,这样就能减少数据库的请求次数。

# 缓存击穿

缓存击穿,就是一部分缓存,同时后期了, 最终大量的请求去查询数据库了。
解决他也是很容易的,将我们的缓存设置不过期、过期时间分散,或者在请求的时候更新缓存的过期时间,这三种都可以很好的解决我们的问题

# 缓存雪崩

缓存雪崩,当我们缓存系统意外宕机或者故障了,流量瞬间切换到数据库,数据服务宕机后导致其他服务挂掉,形成了一连串的故障。

这里解决的方案我们也准备了,首先就是缓存做高可用,主从等等,另外也可以通过限流,当缓存出现故障,我们限制访问的流量来解决

# 缓存的一致性
最后一个问题,缓存数据的一致性,也是最难搞得一个棘手问题。

相信我不说,大家也知道他是什么意思。就是缓存和数据库中的数据不一致!

解决方案:

- 当读取缓存的时候,如果缓存里没有相关数据,则执行相关的业务逻辑,构造缓存数据存入到缓存系统;
- 当与缓存项相关的资源有变动,则先删除相应的缓存项,然后在数据库中对资源进行更新

更多编程内容,请关注公众号《coder练习生》‘,如果觉得有用,也可赠送作者一杯咖啡

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

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

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

打赏作者

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

抵扣说明:

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

余额充值