php redis缓存雪崩,redis雪崩是什么「建议收藏」

php redis缓存雪崩,redis雪崩是什么「建议收藏」什么是redis的雪崩?下面本篇文章就来给大家简单介绍一下,希望对你们有所帮助。什么是雪崩?因为缓存层承载了大量的请求,有效的保护了存储层,但是如果缓存由于某些原因,整体不能够提供服务,于是所有的请求,就会到达存储层,存储层的调用量就会暴增,造成存储层也会挂掉的情况。缓存雪崩的英文解释是奔逃的野牛,指的是缓存层当掉之后,并发流量会像奔腾的野牛一样,大量访问后端存储。缓存雪崩通俗简单的理解就是:由于…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是redis的雪崩?下面本篇文章就来给大家简单介绍一下,希望对你们有所帮助。

ba71ba84b096dca312879abdbc535ed1.png

什么是雪崩?

因为缓存层承载了大量的请求,有效的保护了存储层,但是如果缓存由于某些原因,整体不能够提供服务,于是所有的请求,就会到达存储层,存储层的调用量就会暴增,造成存储层也会挂掉的情况。缓存雪崩的英文解释是奔逃的野牛,指的是缓存层当掉之后,并发流量会像奔腾的野牛一样,大量访问后端存储。

缓存雪崩通俗简单的理解就是:由于原有缓存失效(或者数据未加载到缓存中),新缓存未到期间(缓存正常从Redis中获取,如下图)所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机,造成系统的崩溃。

d24c024912b9dc640d4c9134dbaf28ab.png

缓存失效的时候如下图:

0b0af5c8c44687f04b9afd8d68eec2b5.png

存在这种问题的一个场景是:当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,大量数据会去直接访问DB,此时给DB很大的压力。

缓存失效时的雪崩效应对底层系统的冲击非常可怕!那有什么办法来解决这个问题呢?

解决方法

1)、设置redis集群和DB集群的高可用,如果redis出现宕机情况,可以立即由别的机器顶替上来。这样可以防止一部分的风险。

2)、使用互斥锁

在缓存失效后,通过加锁或者队列来控制读和写数据库的线程数量。比如:对某个key只允许一个线程查询数据和写缓存,其他线程等待。单机的话,可以使用synchronized或者lock来解决,如果是分布式环境,可以是用redis的setnx命令来解决。

3)、不同的key,可以设置不同的过期时间,让缓存失效的时间点不一致,尽量达到平均分布。

4)、永远不过期

redis中设置永久不过期,这样就保证了,不会出现热点问题,也就是物理上不过期。

5)、资源保护

使用netflix的hystrix,可以做各种资源的线程池隔离,从而保护主线程池。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193913.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于左值和右值的一些问题总结[通俗易懂]

    在C语言当中,我们经常会遇见一些平时感觉怎么用都不会出错的小知识点,但是再将它的难度提高一点点的时候,或者将它改变一点点,我们就不再将它用起来那么的得心应手。左值和右值正是一个这样的十足十的例子。在学习了指针知识之后,高度理解左值与右值便不再显得那么的无聊。这个解释看起来有点傻,但是不得不说:左值就是那些能够出现在赋值符号左边的东西,右值就是那些能够出现在赋值符号右边的东西。例如:a=b+25;这…

    2022年4月10日
  • nohup和&的区别

    nohup和&的区别转自:nohup和&的区别http://bbs.nanjimao.com/thread-470-1-1.html(出处:南极猫)nohup是永久执行&是指在后台运行运行n

    2022年7月3日
  • 微信中调用扫一扫最简便的方法 5行代码实现H5扫一扫 HTML5扫二维码最简便的办法

    微信中调用扫一扫最简便的方法 5行代码实现H5扫一扫 HTML5扫二维码最简便的办法调用方式1(推荐。用redirect_uri参数指定接收结果的页面,可以是自身url):<ahref=”https://www.996315.com/api/scan/?redirect_uri=你的网页完整url”>扫描</a>调用方式2(不推荐):<ahref=”https://www.996315.com/api/scan/”>扫描</a>调用方式3(用js调用。本质和方式1、2一样):<ahref=”javascr

    2022年5月18日
  • 智能的概念定义_实践的本质和结构

    智能的概念定义_实践的本质和结构本文描述了我理解的智能的DIKW结构(数据层Data->信息层Information->知识层Knowledge->智慧层Wisdom),希望凭借这个框架解释智能的来源和本质。

    2022年11月1日
  • python 字符串转列表,列表转字符串

    python 字符串转列表,列表转字符串1.字符串转列表python的split()函数个人认为是个相当神奇的存在。比如你有一串字符串需要解析。就可以用split()想去掉字符串里面的回车键:str=a.split(‘\n’)想去掉前两个a字符str=a.split(‘a’,2)就是这么神奇。返回的str还是个列表。2.列表转字符串若想将python的列表转化为字符串,直接去掉‘[…

    2022年5月20日
  • supervisor常见报错[通俗易懂]

    supervisor常见报错[通俗易懂]supervisor常见报错

    2022年4月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号