一些缓存常用概念及解决方案

缓存都是部署在应用到数据库之间的,抗住流量高峰为数据库保驾护航。在分布式应用中,常见的问题有这些:
     一、缓存穿透
    描述:
    缓存和数据库都没有的记录被频繁请求,缓存没有起到缓冲请求的作用,请求直接到达数据库。
    解决方案:
    1、应用中过滤数据库中绝对不可能出现的Key值,在到达缓存前拦截。比如:商品ID自增长从1开始,而外部请求频繁请求0或-1以及其他小于0的值。
    2、记录这类数据KEY,设置KEY对应NULL值。
    二、缓存击穿
    描述:
    缓存中热门KEY被频繁请求,然而该KEY有超时时长在该KEY超时的那一瞬间所有请求都会直接到达数据库。
    解决方案:
    1、更新锁。在更新的时候确保只有一个线程来更新缓存,缓存更新成功后才允许其他线程访问。
    2、后台任务定时更新。在KEY超时之前强制更新一波缓存,但这个得精确计算每个KEY超时时间。
    三、缓存雪崩
    描述:
    当缓存服务节点因为未知因素宕机了,缓存压力全部压在其他缓存服务节点,最后整个缓存服务集群崩了,应用所有请求直达数据库,最终导致数据库服务崩了。
    解决方案:
    实时监控缓存服务节点运行情况,纳入运维预警管理。提前预估流量高峰,水平扩展缓存服务节点

博主地址——凤松轩博客 - 一个小小文艺范儿的个人

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值