首页 > 数据库 >redis的雪崩和穿透

redis的雪崩和穿透

时间:2023-02-20 19:01:37浏览次数:32  
标签:ehcache 缓存 请求 数据库 redis 穿透 限流 雪崩

一、 缓存雪崩

缓存挂了以后,大量请求拖垮后面的数据库。

如何解决缓存雪崩?

1、 事前

redis高可用,主从+哨兵,rediscluster,避免全盘崩溃

2、 事中

本地ehcache缓存+hystrix限流&降级,避免mysql崩溃
a、 在主访问系统中增加一个ehcache缓存,这个缓存可以不大
b、 用户发送请求,先查本地ehcache缓存,如果没有再查redis
c、 如果ehcache和redis都没有,就查数据库
d、 将数据库中的结果,写入ehcache和redis

hystrix限流&降级

a、 限流组件,你可以设置,假设限制每秒就2000个请求,一秒过来5000个请求,此时只有2000个请求会通过限流组件,进入数据库。
b、 剩余的3000个请求怎么办?走降级,限流组件会发现现有3000个请求没法通过自己,会调用你自己开发好的一个降级的组件,返回一些默认的值,或者友情提示,或者空白值。
c、 好处1:数据库绝对不会崩溃,限流组件就确保了每秒只会过去2000个请求。
d、 好处2:只要数据库不崩溃,就是对用户来说,2/5的请求都是可以被处理的。
e、 好处3:只要有2/5的请求可以被处理,就意味着你的系统没死,对用户来说,就是可能点击几次刷不出来页面,但是多点几次就刷出来页面了。

3、 事后

redis持久化,快速恢复缓存数据

二、 缓存穿透

缓存和数据库中都没有请求的数据,直接穿过缓存,大量访问数据库,数据库就崩溃了。

解决:每次系统从数据库中只要没查到,就写一个空值到缓存里

标签:ehcache,缓存,请求,数据库,redis,穿透,限流,雪崩
From: https://blog.51cto.com/u_15973676/6069328

相关文章

  • redis的并发竞争问题
    第一种方案:分布式锁1.整体技术方案这种情况,主要是准备一个分布式锁,大家去抢锁,抢到锁就做set操作。2.为什么是分布式锁?因为传统的加锁的做法(如java的synchronized和l......
  • redis中热点数据及大value处理
    1.redis的热点数据是什么,可能出现什么问题?某个key的访问频率很高,当一个key的qps到达1000的时候就需要关注了。redis中数据分布在集群的不同节点上,当某个key的qps过高,容......
  • 客户端跟redis的一次通信流程
    1.在redis启动初始化的时候,redis会将连接应答处理器跟AE_READABLE事件关联起来,接着如果一个客户端跟redis发起连接,此时会产生一个AE_READABLE事件,然后由连接应答处理......
  • Memcached与Redis有什么区别
    Redis和Memcached都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库。Redis是一个开源的key-value存储系统。与......
  • 银河麒麟V10系统安装Redis
    1、[root@localhostopt]#yuminstallcpp输入:y  2、[root@localhostopt]#yuminstallbinutils  3、[root@localhostopt]#yuminstallglibc4、[root@......
  • Redis 数据结构
    本文主要描述reids数据结构和底层数据结构的实现,用于熟悉redis的底层数据结构实现原理,下图是reids的整个数据结构组成。这篇文章主要介绍value对象这部分数据结构 SDS......
  • java redis 密码输错5次,已锁定,请30分钟后重试!
    Stringusername=sysUser.getUsername();StringretryCountNum=redisService.get(username);if(StrUtil.isNotBlank(retryCountNum)&&Integer.valueOf(retryCountNum......
  • redis11_Redis的主从复制【先了解待重新看教程】、redis的集群、redis 集群的优缺点
    Redis的主从复制文章目录文章目录​​Redis的主从复制文章目录​​​​redis的主从复制是什么?​​​​redis的集群​​​​集群的Jedis开发​​​​Redis集群的优缺点​​r......
  • Redis缓存穿透 && 缓存击穿 && 缓存雪崩
    9.1.1缓存处理流程前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。CreatedwithRap......
  • 【Docker-3】Docker-Compose安装常用软件Nginx、Mysql、Redis、Java
    创建应用目录结构nginxconf.d-放置自定义的配置文件default.conflog-日志存储位置nginx.conf -nginx总配置文件docker-compose.ymlmysqlconf-放置自......