写在开始

redis是一个基于内存hash结构的缓存型db。其优势在于速读写能力碾压mysql。由于其为基于内存的db所以存储数据量是受限的。

redis性能

redis读写性能测试redis官网测试读写能到10万左右

redis读写能力为2W/s

mysql读能力5K/s、写能力为3K/s

数据上看redis性能碾压mysql

redis缓存穿透

缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂了。

 解决办法就是将从db过来的返回值进行缓存,根据实际情况重新加热,若db返回是空则缓存几分钟就可以了。

redis缓存雪崩

在我们设置缓存时采用了相同的过期时间或者缓存服务器因某些原因无法使用时,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。

 解决办法过期时间上增加一个范围的随机值,使用Redis Sentinel 和 Redis Cluster 实现高可用,另增设一个寿命更短的本机缓存来解决redis分布缓存抢修时的问题。

 在发生无论是缓存穿透还是缓存雪崩,都建议使用队列来排队、拒绝大量请求涌入和分布式互斥锁来避免后端数据服务被冲击,防止已有的数据出现问题。

转载于:https://www.cnblogs.com/tianmh/p/9555400.html

redis与mysql性能对比、redis缓存穿透、缓存雪崩相关推荐

  1. mongodb,redis,mysql简要对比

    mongodb,redis,mysql 简要对比 本篇内容大部分不是原创,转载的会贴有链接. 准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块. 当下主流的要数No ...

  2. Redis 缓存穿透、雪崩、缓存数据库不一致、持久化方式、分布式锁、过期策略

    1. Redis 缓存穿透 1.1 Redis 缓存穿透概念 访问了不存在的 key,缓存未命中,请求会穿透到 DB,量大时可能会对 DB 造成压力导致服务异常. 由于不恰当的业务功能实现,或者外部恶 ...

  3. 二十七、Redis缓存穿透和雪崩(完)

    Redis缓存穿透和雪崩 一.服务的高可用问题 在这里我们不会详细的区分析解决方案的底层! Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面.但同时,它也带来了一些问题.其中 ...

  4. Redis全部知识总结(概念、安装、用法、数据类型、事务、持久化、Jeids、订阅系统、缓存穿透及雪崩等)

    Redis NoSql简述 Nosql概念 Nosql的四大分类 Redis概述 Redis的安装 安装文件 Window下安装 Linux下安装 redis-benchmark 压力测试工具 五大数 ...

  5. 21_Redis_浅析Redis缓存穿透和雪崩

    为什么了解缓存穿透和雪崩:保证服务的高可用问题 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面.但同时,它也带来了一些问题.其中,最要害的问题,就是数据的一致性问题,从严格 ...

  6. Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(详解)

    一.概述 ① 缓存穿透:大量请求根本不存在的key(下文详解) ② 缓存雪崩:redis中大量key集体过期(下文详解) ③ 缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热 ...

  7. 解析redis存储结构丨 redis与mysql存储对比丨redis存储原理分析

    90分钟视频讲解搞懂redis存储原理 1. redis与mysql存储对比 2. redis存储原理分析 3. redis存储与持久化的关系 [后端开发系列]解析redis存储结构丨 redis与m ...

  8. redis缓存穿透,缓存击穿,缓存雪崩

    缓存穿透 缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有.这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询).这样请求就会绕过 ...

  9. beyond compare4过期解决方法_面试必备:缓存穿透、雪崩解决方案及缓存击穿的四种解决方案...

    前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透.缓存击穿与失效时的雪崩效应. 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到 ...

  10. Redis11_缓存穿透和雪崩

    Redis11_缓存穿透和雪崩 缓存穿透 用户查询某个数据时,会先在redis缓存中查询,如果缓存没有命中,会去持久层数据库MySQL中查询,如果此时依然没有命中,将返回null,不会写入缓存. 当同 ...

最新文章

  1. 感觉皮层实质性参与工作记忆的信息保存
  2. 剑桥制造学院下的研究硕士项目!
  3. mysql myisam 去掉表锁a_MyISAM表锁的解决方案
  4. 【TensorFlow-serving】初步学习模型部署
  5. batchnorm and relu_日本AND荷重传感器
  6. dazhilu飞鸽传书 2013 官方网站
  7. 热传递物理模型matlab,简单传热学计算机分析MatlabPDE二维不稳态焊接热传导求解.PPT...
  8. centos8搭建k8s集群
  9. Linux基础学习(5)
  10. Linux下双网卡绑定bond0
  11. Linux查看和注销用户
  12. EasyRecovery的工具栏介绍
  13. [转]VS2010 安装 fixedsys字体
  14. Excel数据透视表经典教程十三《打印数据透视表/图》
  15. php mysql日期转换成时间戳_php日期转时间戳,指定日期转换成时间戳【转】
  16. 关于AMS117_3.3V电源芯片导致CH340串口芯片重启的问题
  17. QGIS制作好看地形图
  18. C/C++中取地址符的语义
  19. JST日本压着端子GHD系列线对板连接器PCB封装库(1.25mm间距)
  20. 深刻解读Deeper是Substrate Builders Program中的头部项目

热门文章

  1. BZOJ 2432 兔农
  2. 我学习的自定义ASP.NET分页控件
  3. 组合选择符 深入了解
  4. Uploadify—借助Uploadify插件实现图片预览时如何解决Chrome浏览器报“喔唷,崩溃啦”
  5. 通过截取实时系统日志查找问题bug的小技巧命令--linux
  6. Kafka配置6--Windows下设置和增加SASL用户或用户权限
  7. xml+flash图片展示
  8. PageHelper测试分页插件
  9. HTTP session的原理
  10. java实现【国密SM4】加密解密-CBC模式