redis复习

redis知识点

  • redis持久化
  • redis 订阅发布模式
  • redis主从复制
  • 哨兵模式
  • redis雪崩,穿透
  • 缓存击穿(请求太多,缓存过期)
  • 缓存雪崩

redis持久化

redis是内存数据库,持久化有两种方式,一种是RDB(redis database),一种是AOF(append only file)。
rdb的持久化方式是定期将redis内存内容写入rdb临时文件,(fork子进程,通过子进程来写文件,主进程接着执行redis业务),写入完成后替换以前的快照文件。保存的文件一般是dump.rdb。恢复是重启redis时,数据被自动恢复。
aof的持久化是通过对执行的每条命令,存取日志文件,将redis执行过程中的每条命令记录下来。恢复时读取该文件将每条redis命令重新执行,以达成数据的恢复。

aof持久化的效率比rdb的效率低,文件也比rdb大,修复速度也比较慢。但是因为是每条命令都记录,实时性比较好,基本不会丢命令。

如果同时开启两种持久化方式,则优先使用aof方式恢复

redis 订阅发布模式

一个redis cli订阅某个频道,通过SUBSCRIBE 命令 如下:

redis 127.0.0.1:6379> SUBSCRIBE redisChat

Reading messages… (press Ctrl-C to quit)

  1. “subscribe”
  2. “redisChat”
  3. (integer) 1

其他redis cli往此频道发消息,如下:

redis 127.0.0.1:6379> PUBLISH redisChat “Redis is a great caching technique”

(integer) 1

redis 127.0.0.1:6379> PUBLISH redisChat “Learn redis by mszlu.com”

(integer) 1

订阅者的客户端会显示如下消息

  1. “message”
  2. “redisChat”
  3. “Redis is a great caching technique”
  4. “message”
  5. “redisChat”
  6. “Learn redis by mszlu.com”

可以实现简单的消息同步

redis主从复制

将一台redis的数据,复制到另一台redis,前者称为主节点,后者称为备节点
作用:

  1. 数据冗余,是持久化之外的一种数据冗余方式
  2. 故障恢复,主节点出问题,由从节点提供服务,实现快速故障恢复
  3. 负载均衡,主节点负责写,从节点负责读,读比较多时候,可以让多个从节点负载读操作
  4. 是哨兵模式和集群能够实施的基础
    复制有全量同步和增量同步,全量同步是在从redis连接主redis时触发

哨兵模式

哨兵模式

哨兵是一个独立的进程,此进程通过向redis实例发消息,看有没有响应来判断redis是否故障,哨兵检测到master挂了,首先会选一个slave节点,将他变为主节点,然后通过发布订阅模式通知从节点重新选主

多哨兵模式
在这里插入图片描述
多个哨兵互相监控,如果多个哨兵都发现主节点故障,才会选出一个哨兵进行failover

redis雪崩,穿透

缓存穿透,redis中都没有数据,程序都去sql中查,造成sql压力
在这里插入图片描述
解决方法1 布隆过滤器 对查询的请求规则,做一次过滤(过滤基准是对所有可能的查询参数先以hash方式存储),布隆过滤器,不符合要求的请求直接扔掉。
在这里插入图片描述
解决方法2 缓存空值
在这里插入图片描述

缓存击穿(请求太多,缓存过期)

缓存击穿,是指一个 key 非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个 key 在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

解决方案1,设置热点数据永不过期

解决方案2,加互斥锁,将高并发的压力转移到分布式锁上

缓存雪崩

缓存雪崩,是指在某一个时间段,缓存集中过期失效。

产生雪崩的原因之一,比如马上就要双十二零点,,很快就会有一波抢购,这波商品时间比较集中的放在了缓存,假设缓存一个小时。那么到了凌晨一点钟的时候,这批商品的缓存就都会过期了。而对这批商品的访问查询,都落到数据库上,对于数据库而言,就会产生周期性的压力波峰。于是所有的请求都会到达存储层,存储层的调用量会暴增,造成存储层也回掉的情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/749831.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【解决方案】你必须要知道的~前端九种跨域方式实现原理(完整版)

前言 前后端数据交互经常会碰到请求跨域,什么是跨域,以及有哪几种跨域方式,这些问题通常出现在Web开发中,当浏览器执行脚本发起请求到不同的域名、协议或端口时,出于安全考虑,浏览器会限制这种跨源HTTP请求…

Redis数据库(六):主从复制和缓存穿透及雪崩

目录 一、Redis主从复制 1.1 概念 1.2 主从复制的作用 1.3 实现一主二从 1.4 哨兵模式 1.4.1 哨兵的作用 1.4.2 哨兵模式的优缺点 二、Redis缓存穿透和雪崩 2.1 缓存穿透——查不到 2.1.1 缓存穿透解决办法 2.2 缓存击穿 - 量太大,缓存过期 2.2.1 缓存…

拍照就用华为Pura 70系列,后置真实感人像轻松出片!

平时喜欢用手机记录生活的人是不是总有个烦恼,想要拍出媲美单反的完美人像,又怕照片失真,经过近期对手机摄影的探索,我发现了华为Pura70系列的真实感人像之美,它给予每个热爱生活的人直面镜头的自信,记录真…

毕业季留念,就该这样记录下来

毕业季来啦!这个季节总是充满了不舍和期待,就像夏天里的冰淇淋,甜蜜中带着一丝丝凉意。在这个特别的时刻,我想和大家分享一款陪伴我记录青春点滴的神器——nova 12 Ultra 手机。 要说自拍,我可是个“资深玩家”。以前…

以算筑基,以智赋能 | Gooxi受邀出席2024中国智算中心全栈技术大会

6月25日,2024中国智算中心全栈技术大会暨展览会、第5届中国数据中心绿色能源大会暨第10届中国(上海)国际数据中心产业展览会在上海新国际博览中心隆重召开。Gooxi受邀参与并携最新服务器产品以及解决方案亮相展会,吸引众多行业领袖…

基于MATLAB仿真设计无线充电系统

通过学习无线充电相关课程知识,通过课程设计无线充电系统,将所学习的WPT,DC-DC,APFC进行整合得到整个无线充电系统,通过进行仿真研究其系统特性,完成我们预期系统功能和指标。 以功率器件为基本元件&#x…

【人工智能学习之图像操作(二)】

【人工智能学习之图像操作(二)】 图像上的运算图像混合按位运算 图像的几何变换仿射变换透视变换膨胀操作腐蚀操作开操作闭操作梯度操作礼帽操作黑帽操作 图像上的运算 图像上的算术运算,加法,减法,图像混合等。 加减…

Profibus协议转Modbus协议网关模块在船舶中的应用

一、背景 在当今数字化快速发展的时代,船舶作为重要的交通工具之一,也在不断追赶着科技的步伐,实现自身的智能化升级。而在这个过程中,Profibus转Modbus网关(XD-MDPB100)作为关键的一环,扮演着…

05 Shell编程之免交互

目录 5.1 Here Document 免交互 5.1.1 Here Document 概述 5.1.2 Here Document 免交互 1. 通过read命令接收输入并打印 5.1.3 Here Document变量设定 5.1.4 Here Document 格式控制 (1)关闭变量替换的功能。 (2)去掉每行之前的TAB字符。 5.1.5 Here Document 多行注释…

前端写代码真的有必要封装太好么?

前言 封装、代码复用、设计模式…… 这些都是方法,业务才是目的。技术始终是为业务服务的。能够满足业务需求,并且用起来舒服的,都是好方法。 不存在一套适用于所有项目的最佳代码组织方法,你需要结合业务,去不断地…

cad报错:由于找不到vcruntime140.dll无法继续执行代码

在现代的工程设计中,计算机辅助设计(CAD)软件已经成为了工程师们不可或缺的工具。然而,在使用CAD软件的过程中,有时我们会遇到一些问题,其中之一就是“找不到vcruntime140.dll”的错误提示。本文将详细介绍…

鸿蒙期末项目(2)

主界面 主界面和商店详情界面参考如下设计图(灵感严重匮乏) 简单起见,将整个app分为4个布局,分别是主界面、搜索界面、购物车界面,以及个人界面。 所以在app中也需要使用tab组件进行分割,且需要通过tabBa…

安装Flask

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 大多数Python包都使用pip实用工具安装,使用Virtualenv创建虚拟环境时会自动安装pip。激活虚拟环境后,pip 所在的路径会被添加…

离散傅里叶变化

傅里叶变换 对傅里叶变换了解不是很清楚的朋友推荐一下这个帖子,讲得很详细 傅里叶变换 源码 先看源码链接 #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/imgcodecs.hpp" #include "open…

FuTalk设计周刊-Vol.026

🔥🔥AI漫谈 热点捕手🔥🔥 1、Hotshot-XL AI文本转GIF Hotshot-XL 是一种 AI 文本转 GIF 模型,经过训练可与Stable Diffusion XL一起使用。能够使用任何现有或新微调的 SDXL 模型制作 GIF。 网页体验 网页http://htt…

git 初基本使用-----------笔记(结合idea)

Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…

聚类算法(3)---K-means 算法

本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记&#…

软件测试的目的和原则介绍,软件测试外包公司推荐

在当今信息技术迅速发展的时代,软件产品的质量和安全性对用户至关重要。而软件测试作为保障软件产品质量的关键一环,具有不可或缺的作用。 软件测试的目的是为了发现和解决软件产品中的缺陷和问题,确保软件的稳定和可靠性。软件测试帮助找出…

表格截图怎么转换成表格?6个软件帮助你快速进行表格转换

表格截图怎么转换成表格?6个软件帮助你快速进行表格转换 将表格截图转换为可编辑的表格文件是处理数据时常见的需求,特别是在需要分析或编辑图像中包含的信息时。以下是几款帮助你快速进行表格转换的软件和工具,它们提供了不同的功能和适用场…

揭秘!这款电路设计工具让学校师生都爱不释手——SmartEDA的魔力何在?

随着科技的飞速发展,电子设计已成为学校师生们不可或缺的技能之一。而在众多的电路设计工具中,有一款名为SmartEDA的工具,凭借其强大的功能和友好的用户体验,迅速赢得了广大师生的青睐。今天,就让我们一起探索SmartEDA…