2. Redis持久化、主从哨兵架构详解

news2024/11/27 18:26:17

分布式缓存技术Redis

  • 1. Redis持久化
    • 1.1 RDB快照(snapshot)
      • 1.1.1 bgsave的写时复制(COW)机制

本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。

课程内容:

1、RDB、AOF及混合持久化详解

2、并行持久化之写时复制机制详解

3、Redis主从架构原理详解

4、Redis管道及lua脚本详解

5、Redis哨兵高可用架构详解

1. Redis持久化

1.1 RDB快照(snapshot)

在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。

你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存一次 数据集。

比如说, 以下设置会让 Redis 在满足“ 60 秒内有至少有 1000 个键被改动”这一条件时, 自动保存一次 数据集:

# save 60 1000 //关闭RDB只需要将所有的save保存策略注释掉即可

我们可以打开redis.conf文件进去看一下:

在这里插入图片描述

文件持久化的位置如下:

在这里插入图片描述

还可以手动执行命令生成RDB快照,进入redis客户端执行命令save或bgsave可以生成dump.rdb文件,每次命令执行都会将所有redis内存快照到一个新的rdb文件里,并覆盖原有rdb快照文件。

1.1.1 bgsave的写时复制(COW)机制

rdb这种快照文件,redis在写命令,突然触发了我们所配置的条件,做持久化了。如果一下是8G的内存,把这8G写到dump.rdb文件里去,是有可能阻塞我们的正常redis请求。是有可能的。

redis内部对这个持久化rdb文件有两种策略,在后台执行那种save命令。save命令是一个同步操作,是后台做的操作。使用save是会阻塞客户端的新的请求过来。save这种是主线程直接操作。还有一种方式,也是redis经常使用的一种方式就是bgsave

Redis 借助操作系统提供的写时复制技术(Copy-On-Write, COW),在生成快照的同时,依然可以正常处理写命令。简单来说,bgsave 子进程是由主线程 fork 生成的,可以共享主线程的所有内存数据。

bgsave 子进程运行后,开始读取主线程的内存数据,并把它们写入 RDB 文件。此时,如果主线程对这些数据也都是读操作,那么,主线程和 bgsave 子进程相互不影响。但是,如果主线程要修改一块数据,那么,这块数据就会被复制一份,生成该数据的副本。然后,bgsave 子进程会把这个副本数据写入 RDB 文件,而在这个过程中,主线程仍然可以直接修改原来的数据。

save与bgsave对比:

命令savebgsave
Io类型同步异步
是否阻塞redis其它命令否(在生成子进程执行调用fork函
复杂度o(n)o(n)
优点不会消耗额外内存不阻塞客户端命令
缺点阻塞客户端命令需要fork子进程,消耗内存

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css基础一:说说你对CSS盒子模型的理解?

一、是什么 当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box) 一个盒子由四…

认识HttpServletRequest和HttpServletResponse

hi,大家好,上一期我们认识了HttpServlet,这一期我们来认识一下HttpServletRequest和HttpServletResponse 🚀HttpServletRequest 💚1.核心方法介绍 💚2.代码举例展示 🚀HttpServletResponse 💚1.核心方法展示 &a…

STC12读取内部ID方法介绍

STC12读取内部ID方法介绍 🔖这里以STC12LE5A60S2为例,从STC12手册的第一章,1.10小结可以找到相关的ID相关的信息。这个信息主要是用于程序加密或产品销售管理等方面。🌿STC12LE5A60S2系统板: https://oshwhub.com/pers…

javaScript蓝桥杯----阅读吧

目录 一、介绍二、准备三、目标四、代码五、完成 一、介绍 “读万卷书,行万里路”,无论你现在贫穷或富有,身和心一定要有一个在路上。那么,在快节奏的今天,人们是如何利用碎片化的时间去阅读的呢?没错&…

【MySQL高级篇笔记-事务基础知识(中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、数据库事务概述 1、存储引擎支持情况 2、基本概念 3、事务的ACID特性 1.原子性(atomicity) 2.一致性(consistency) 3.隔离型(isolation) 4.持久性&a…

卷积编码和维特比译码

文章目录 卷积编码维特比译码 卷积编码 卷积码是一种非分组码,通常适用于前向纠错。在分组码中,编码器产生的 n 个码元的一个码组,完全决定于这段时间中 k 比特输入信息。这个码组中的监督位仅监督本码组中 k 个信息位。卷积码在编码时虽然也…

Calico介绍

Calico 是一个基于 BGP 的纯三层的网络方案,与 OpenStack 、Kubernetes 、AWS 、GCE 等云平台都能够良好地集成 。 Calico 在每个计算节点都利用 Linux Kernel 实现了一个高效的 vRouter 来负责数据转发 。每个 vRouter 都通过 BGP 协议把在本节点上运行的容器的路由…

msf渗透练习-php后门反弹

说明: 本章内容,仅供学习,不要用于非法用途(做个好白帽) (一)后门反弹是什么 后门反弹是指攻击者在成功入侵一台计算机后,在目标计算机上安装一个“后门程序”,将该程序…

内网安全:横向传递攻击(SMB || WMI 明文或 hash 传递)

内网安全:横向传递攻击. 横向移动就是在拿下对方一台主机后,以拿下的那台主机作为跳板,对内网的其他主机再进行后面渗透,利用既有的资源尝试获取更多的凭据、更高的权限,一步一步拿下更多的主机,进而达到控…

解决语言障碍:如何将Axure变为中文版?

Axure 是一款备受称赞的原型设计工具,被誉为 "交互神器"。然而,在国内,一些设计师对于使用 Axure 有所犹豫,其中语言环境不适应是主要的顾虑之一。在本文中,我们将探讨一种更适合国内设计师的 Axure 中文版即…

网工内推 | 国企专场,补贴福利多,CCNP认证以上优先

01 凯盛数智信息技术科技(上海)有限公司 🔷招聘岗位:网络工程师(IT工程师) 🔷职责描述: 1、负责公司数据中心机房、服务器及网络设备的管理和维护工作; 2、负责公司基础…

微信小程序实用工具——渐变色按钮(二)

今日推荐💁‍♂️ 今年的国美毕业展已经开始了🧑‍🎨🧑‍🎨在杭州的小伙伴可以快速出击了🏃‍♂️🏃‍♂️ 这里我想推荐其中的一副版画作品《突围》 在众多版画系作品中被它所吸引 文章目录 今…

【linux离线升级gcc版本---gcc4.8.5-->gcc12.2.0】

【linux离线升级gcc版本---gcc4.8.5-->gcc12.2.0】 🔻 一、gcc简介🔻 二、gcc下载上传🔻 三、查看和安装gcc-12.2.0需要的依赖3.1 🍁 查看gcc-12.2.0所需依赖库3.2 🍁 安装gmp、mpfr、mpc、isl &#x1f53…

DJ4-8 抖动与工作集

目录 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 2、CPU 利用率急剧下降的原因 3、抖动 4、工作集模型 5、抖动的预防 4.9 请求分段存储管理方式 4.9.1 请求分段中的硬件支持 4.9.2 分段的共享与保护 4.8 抖动与工作集 1、缺页率对有效访问时间的影响 有…

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日,坪山区城市更新和土地整备局发布,关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道,南邻南坪快速路,北邻比亚迪路,东西两…

一种新型智能优化算法—鼠群优化(RSO)算法

目录 一、RSO理论基础 二、RSO数学模型 2.1 追逐猎物 2.2 攻击猎物 三、RSO流程图 四、运行结果 鼠群优化(Rat Swarm Optimizer,RSO)算法是由Dhiman G等人于2020年提出,主要启发于老鼠追逐和攻击猎物的种群行为。该优化算法具有结构简单&#xf…

DJ4-2 程序的装入和链接

目录 4.2.1 程序的装入 一、绝对装入方式 二 、可重定位装入方式 三、动态运行时装入方式 4.2.2 程序的链接 一、静态链接 二、装入时动态链接 三、运行时动态链接 在多道程序环境下,如果程序要运行,那么必须为之创建进程。而创建进程的第一件…

六级备考8天|CET-6|阅读强化2|19:30~21:00

目录 正确选项两大标准 练习 问题一 问题二 问题三 问题四​ 问题五 ​ 正确选项两大标准 1. 定位准确 2. 改写正确 举例: 练习 问题一 immediate vicinity oftoo close unprecedented 前所未有的; 问题二 主语:a global campaign 谓…

解决问题 Could not obtain transaction-synchronized Session for current thread

一、问题现象 在使用Hibernate的项目中,在一个定时任务中,执行某段代码,满足条件后,更新表数据。 程序在执行到更新表数据的时候,报错如下: Could not obtain transaction-synchronized Session for cur…

chatgpt赋能python:用Python优化微信群SEO

用Python优化微信群SEO 随着微信群的普及,越来越多的人开始将其作为社交媒体和个人品牌的重要推广渠道之一。然而,想要让你的微信群在搜索引擎中排名靠前,就需要进行一些有效的SEO技巧,以吸引更多的目标用户。 在本文中&#xf…