0
点赞
收藏
分享

微信扫一扫

6【缓存常用概念及解决方案】

芭芭蘑菇 2022-05-11 阅读 121

缓存都是部署在应用到数据库之间的,抗住流量高峰为数据库保驾护航。在分布式应用中,常见的问题有这些:

     一、缓存穿透

    描述:

    缓存和数据库都没有的记录被频繁请求,缓存没有起到缓冲请求的作用,请求直接到达数据库。

    解决方案:

    1、应用中过滤数据库中绝对不可能出现的Key值,在到达缓存前拦截。比如:商品ID自增长从1开始,而外部请求频繁请求0或-1以及其他小于0的值。

    2、记录这类数据KEY,设置KEY对应NULL值。

    二、缓存击穿

    描述:

    缓存中热门KEY被频繁请求,然而该KEY有超时时长在该KEY超时的那一瞬间所有请求都会直接到达数据库。

    解决方案:

    1、更新锁。在更新的时候确保只有一个线程来更新缓存,缓存更新成功后才允许其他线程访问。

    2、后台任务定时更新。在KEY超时之前强制更新一波缓存,但这个得精确计算每个KEY超时时间。

    三、缓存雪崩

    描述:

    当缓存服务节点因为未知因素宕机了,缓存压力全部压在其他缓存服务节点,最后整个缓存服务集群崩了,应用所有请求直达数据库,最终导致数据库服务崩了。

    解决方案:

    实时监控缓存服务节点运行情况,纳入运维预警管理。提前预估流量高峰,水平扩展缓存服务节点

举报

相关推荐

0 条评论