Redis雪崩_redis落地方式

Redis雪崩_redis落地方式同一时间大面积失效,那一瞬间Redis跟没有一样,那这个数量级别的请求直接打到数据库几乎是灾难性的,如果打挂的是一个用户服务的库,那其他依赖他的库所有的接口几乎都会报错,如果没做熔断等策略基本上就是瞬间挂一片的节奏,怎么重启用户都会把你打挂,等你能重启的时候,用户早就睡觉去了,并且对产品失去了信心,什么垃圾产品。设置两个缓存,原始缓存和备用缓存,原始缓存失效时,访问备用缓存,备用缓存失效时间设置长点。设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。雪崩概念在某一个时间段,缓存集中过期失效。…

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

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

怎么发生的?

雪崩概念:在某一个时间段,缓存集中过期失效。

举例说明:

如果所有首页的Key失效时间都是12小时,中午12点刷新的,我零点有个秒杀活动大量用户涌入,假设当时每秒 6000 个请求,本来缓存在可以扛住每秒 5000 个请求,但是缓存当时所有的Key都失效了。此时 1 秒 6000 个请求全部落数据库,数据库必然扛不住,它会报一下警,真实情况可能DBA都没反应过来就直接挂了。此时,如果没用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。这就是我理解的缓存雪崩。 

Redis雪崩_redis落地方式

同一时间大面积失效,那一瞬间Redis跟没有一样,那这个数量级别的请求直接打到数据库几乎是灾难性的,如果打挂的是一个用户服务的库,那其他依赖他的库所有的接口几乎都会报错,如果没做熔断等策略基本上就是瞬间挂一片的节奏,怎么重启用户都会把你打挂,等你能重启的时候,用户早就睡觉去了,并且对产品失去了信心,什么垃圾产品。

如何去处理?

这边推荐两种方案:

第一种缓存过期时间加入随机值

设置缓存过期时间时加上一个随机值,避免缓存在同一时间过期。

<?php
 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379, 60);

//设置过期时间加上一个随机值
$redis->set('goods1', '商品', 60 + mt_rand(1, 60));
$redis->set('goods2', '商品', 60 + mt_rand(1, 60));

第二种双重缓存

设置两个缓存,原始缓存和备用缓存,原始缓存失效时,访问备用缓存,备用缓存失效时间设置长点。

//原始缓存
$redis->set('goods1', '商品', 60);
//设置备用缓存,失效时间设置长点
$redis->set('goods_beifen', '商品', 1800);

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

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

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


相关推荐

  • 华为海思六大部门_海思3516

    华为海思六大部门_海思351651-20210316华为海思Hi3516DV300的linux系统编译2021/3/1610:42https://xueqiu.com/7970718062/159110439官井想开挖掘机来自iPhone发布于2020-09-1315:18$润和软件(SZ300339)$HiSparkAICamera套件l支持鸿蒙OS、LiteOS、Linux系统,方便进行产品的原型验证和快速开发l板载海思Hi3516DV300芯片,内置双核Cortex-A7,最高运行评率900M.

    2022年9月13日
    3
  • Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)

    Kali Linux三种网络攻击方法总结(DDoS、CC和ARP欺骗)本文章使用的是KaliLinux的2020-4-installer-amd64版本KaliLinux的安装过程本文章不做过多说明,请自行百度一、DDos攻击首先,打开一个命令行输入以下命令:gitclonehttps://github.com/Ha3MrX/DDos-Attack提示如图所示这样,用于DDos的数据包就已经下载到了你的Kali上下面,进入你所下载的DDos文件夹,输入命令(注意大小写):cdDDos-Attack然后设置ddos-attack.py设置

    2022年7月11日
    57
  • Laravel-admin之Driver [] is not supported

    Laravel-admin之Driver [] is not supported

    2021年10月30日
    42
  • Linux环境PHP5.6升级7.1.8

    Linux环境PHP5.6升级7.1.8

    2021年11月4日
    58
  • mysql的可视化工具_Mysql可视化工具Navicat的基本使用

    mysql的可视化工具_Mysql可视化工具Navicat的基本使用一、写在前面的话相信大多数php初学者刚学习mysql的时候,应该都是在cmd黑窗口中进行一些基本sql的增删改查操作,但是在企业中几乎不会在黑窗口环境中进行sql的编写,主要有两点原因:1.界面不友好(虽然有点逼格)2.容易造成数据的误删除(不像女朋友没了可以再找),下面就给大家介绍mysql可视化工具navicat的常用的操作。至于怎么安装navicat相信大家都会,基本一路next,然后选…

    2025年7月23日
    3
  • 【Hibernate】关系映射

    【Hibernate】关系映射【Hibernate】关系映射

    2022年4月25日
    48

发表回复

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

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