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

redis的雪崩、击穿和穿透

时间:2024-09-11 14:47:25浏览次数:10  
标签:缓存 redis 数据库 击穿 雪崩 失效

redis是一种缓存工具,可以大大减少对数据库访问时数据库的压力,同时也可以让我们在对数据的读取时更方便,但由于某些因素,redis也可能会存在雪崩、击穿和穿透的风险:

(引用自https://blog.csdn.net/wangxuanyang_zer/article/details/134420084

1、雪崩:是指在某一时间内大量的缓存失效或者过期,同时又有大量的请求进来,这就会导致大量的请求落在数据库上,引起系统得到崩溃,解决方案如下:

  对缓存进行时间的设定,如逐级失效或随机失效,避免同一时间大量的缓存失效;引入限流或者熔断机制,避免同一时间大量请求。

2、击穿:某个热点的key值在短时间的失效期间,有大量请求落在数据库上,引起数据库压力过大,导致数据库被击垮,(涉及到高并发)

  (1)、设置热点key值永不失效,但是由于内存和热点过多、易过时的原因,不太现实;

  (2)、加锁,java锁无法锁住集群,用分布式锁,假如有大量请求来,如果key值失效,然后往redis的setnx设置一个值,表示这是一个锁,此时只需要一个线程去数据库读取,别的进程sleep一会儿,等查询后再进行查询,但是会出现死锁的问题,要对锁进行时间设置,超过时间自动释放,,多线程进行。当然这只是单节点的redis,如果多节点的redis,就要用到主从哨兵。

3、穿透:是指在查询时,redis里没有数据,数据库里也没有数据,

  设置一个null值,但是由于内存的问题,可以为其设置时间,或者使用布隆过滤器,

 

标签:缓存,redis,数据库,击穿,雪崩,失效
From: https://www.cnblogs.com/shenhui323/p/18342621

相关文章

  • redis的持久化机制
    在使用Redis过程中,持久化是一项非常重要的功能,因为如果RedisServer停止工作,所有的数据将全部丢失。为了避免这种情况的出现,我们需要将Redis中的数据保存在硬盘上,以保证数据不受服务器宕机影响。Redis提供了两种持久化方式——RDB和AOF。一、什么是RDBRedis的RDB持久化方式......
  • Redis事务和管道
    Redis事务和管道事务一、概念Redis事务是可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入。 单独的隔离操作:Redis事务仅仅是保证事务里的操作会被连续独占地执行,redis命令执行是单线程架构,在执行完事务......
  • Java中的缓存穿透与雪崩问题:解决方案与设计模式
    Java中的缓存穿透与雪崩问题:解决方案与设计模式大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在分布式系统中,缓存是提高性能的重要手段。然而,缓存系统在实际应用中常常会遇到缓存穿透和缓存雪崩这两种问题。本文将探讨这两种问题的成因以及在Java中......
  • redis通过6379端口无法连接服务器
    今天免费领取了一台云耀云服务器,但是在部署redis的时候碰到了redis在外网无法访问的情况,以下是针对碰到的问题,解决过程的记录。如果配置Redis在不可预知的情况下只能在内网访问,而外网无法访问,先检查一下步骤是否配置1、需要考虑到Redis配置本身是否支持远程外网访问,在redis的配置......
  • Docker 实战:快速安装 Nginx、Redis、MySQL 等常用软件
    演示下如何使用Docker来完成Redis,Tomcat和MySQL等常用软件的安装。介绍了这几个常见的软件安装之后,以后想要安装其他软件,也是依样画葫芦即可。‍总体步骤一般来说,按照如下步骤来完成安装:搜索镜像拉取镜像查看镜像启动镜像(可能需要配置端口映射)容器的操作(例如启停)......
  • Redis的五大数据类型
    Redis的五大数据类型目录一、String数据类型1.SET/GET/APPEND/STRLEN:2.INCR/DECR/INCRBY/DECRBY:3.GETSET:4.SETEX:5.SETNX:6.MSET/MGET/MSETNX:二、List数据类型1.LPUSH/LPUSHX/LRANGE:2.LPOP/LLEN:3.LREM/LSET/LINDEX/LTRIM:4.LINSERT:5.RPUSH/RPUSHX/RPOP/RPOPLPU......
  • redis本机安装
    redis本机安装1、windows版下载:Releases·microsoftarchive/redis·GitHub 2、下载后解压下载的文件即可,无需安装3、 启动服务第一种先点击redis-server.exe再点击redis-cli.exe,两个窗口都不用关,然后开始敲命令第二种运行指令:redis-server.exeredis.windows.c......
  • RAG与LLM原理及实践(17)---Docker Redis & Python Usage
    目录背景Redis环境download修改镜像RunRedisCodingpythonredisdownload基本使用描述完整代码运行结果高阶用法序列化的方式 Snapshot与AOF快照(RDB)AOF(Append-OnlyFile)代码总结发布与订阅描述     代码运行结果注意事项解释Transanction......
  • Redis实现延迟任务的操作流程
    延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务。也就是说,延迟任务是一种计划任务,它被安排在特定的时间后执行,而不是立即执行。延迟任务的常见使用场景有以下几个:定时发送通知或消息:发送定时短信、邮件或应用内消息,如注册确认、订单状态更新、促销活动通知等......
  • KubeCon China 回顾|快手的 100% 资源利用率提升:从裸机迁移大规模 Redis 到 Kubernetes
    大家下午好,我是来自ApeCloud的吴学强,非常高兴能够在KubeCon做分享。今天的分享由我和来自快手的刘裕惺同学共同完成,我们分享的主题是将大规模的Redis实例从裸机迁移到Kubernetes上来提高资源的利用率。我们今天的议题包括几个方面,首先我会来简单介绍一下KubeBlock......