redis的高可用之持久化

1、redis的高可用考虑指标

(1)正常服务

(2)数据容量的扩展

(3)数据的安全性

2、redis实现高可用的四种方式

(1)持久化

(2)主从复制

(3)哨兵模式

(3)cluster集群

3、持久化的两种方式【重点】

(1)RDB持久化:redis在内存中的数据定时保存到磁盘中

自动机制

1)配置文件vim /etc/redis/6379.conf

①一定时间内redis数据发生变化,bgsave更新

save 120 1000(生产中常用)

save 60 10000(生产中常用)

数据变动越多,执行的时间越短;数据变动不多,执行的时间越长

②rdb文件的压缩功能

③持久化文件的位置

2)主从复制:若从节点执行的是全量复制操作,主节点会执行bgsave,将.rdb文件传送给从节点

3)关闭主进程shutdown后,会自动执行.rdb的持久化

手动机制

①save(工作中禁用)

②bgsave(redis主从复制的默认机制)

(2)AOF持久化:redis的操作日志以追加的方式写入AOF的文件

①自动机制

②重写功能

1)手动触发redis-cli bgrewriteaof

2)自动触发vim /etc/redis/6379.conf

【重点】.aof文件出现截断的情况下,该怎么做?(经验)

aof-load-truncated yes  #判断.aof文件被截断时的行为

设置成yes,表示发现.aof文件被截断,redis在修复时尽可能的恢复.aof文件中的数据,且redis会继续运行

4、AOF备份和恢复【重点】

停止redis服务/etc/init.d/redis_6379 stop

在appendonly.aof文件中删除不需要的操作,即可恢复数据

重启redis服务/etc/init.d/redis_6379 restart

注:RDB是redis的默认持久化,但一旦开启AOF持久化,那么reids会以AOF的持久化文件作为最高优先级

5、AOF的重写功能【重点】

随着时间增长,AOF文件中的数据也会随之增加,AOF文件也随之变大,过大的AOF文件不仅会影响服务器的正常运行,也会导致数据恢复时间过长

文件重写是指定期的重写AOF文件,减小AOF文件的体积,AOF重写是将redis进程的数据,转化为写命令,同步到新的AOF文件中(不会额外生成一个新的AOF文件,只是在原内容中进行压缩),不会对原有的AOF文件进行任何读写操作

注:文件重写虽是AOF持久化推荐的,但不是必须的【重点】

没有重写,不影响redis启动时读取数据,在实际工作中,会关闭文件重写功能,通过定时任务完成具体重不重写,根据业务需求来看

AOF重写为什么能压缩文件?

①重写过程中,过期的数据不会写入文件

②重写过程中,无效的命令不再写入文件,数据被重复设置,例如set test 1,set test 2,删除的数据也不会写入set test 1 ,del test

③重写过程中,会将多条命令合并成一个。例如sadd test1 1 ,sadd test1 2 ,sadd test1 3 ,压缩成sadd test1 1 2 3。重写之后AOF文件中的命令减少了,占用空间减少了,恢复速度增加了

6、RDB和AOF的优缺点

(1)RDB持久化

优点:RDB文件体积小,备份数据时网络传输速度块,适合全量复制,恢复速度比AOF快

缺点:①无法实时持久化,数据非常重要,无法容忍丢失,所以AOF成为主流

②RDB需要满足特定的格式,兼容性差,新旧版本不兼容(reids版本必须一致,redis版本5.0.7)

2AOF持久化

优点:秒级持久化,兼容性好(.aof是文本格式保存的命令,命令是通用的)

缺点:.aof文件大,恢复速度慢,AOF持久化需频繁的向磁盘写入数据,磁盘的I/O压力大,对redis主进程的性能有一定影响

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

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

相关文章

构建智能医患沟通:陪诊小程序开发实战

在医疗科技的浪潮中,陪诊小程序的开发成为改善医患沟通的创新途径之一。本文将介绍如何使用Node.js和Express框架构建一个简单而强大的陪诊小程序,实现患者导诊和医生咨询功能。 1. 安装Node.js和Express 首先确保已安装Node.js,然后使用以…

【软考】文件的组织结构

目录 一、说明二、逻辑结构2.1 说明2.2 记录式文件2.2.1 说明2.2.2 顺序文件2.2.3 索引文件2.2.4 索引文件 2.3 流式文件 三、物理结构3.1 说明3.2 链接方式之隐式链接3.3 链接方式之显式链接 一、说明 1.组织结构是文件的组织形式。 2.逻辑结构为用户可见的的文件结构。 3.物理…

听GPT 讲Rust源代码--src/librustdoc

题图来自 Why is building a UI in Rust so hard? File: rust/src/librustdoc/core.rs 在Rust中,rust/src/librustdoc/core.rs文件的作用是实现了Rustdoc库的核心功能和数据结构。Rustdoc是一个用于生成Rust文档的工具,它分析Rust源代码,并生…

Shell判断:模式匹配:case(二)

简单的JumpServer 1、需求:工作中,我们需要管理N多个服务器。那么访问服务器就是一件繁琐的事情。通过shell编程,编写跳板程序。当我们需要访问服务器时,看一眼服务器列表名,按一下数字,就登录成功了。 2、…

从Hugging Face上手动下载并加载预训练模型

0. 说明: 从 Hugging Face 上下手动载预训练的蛋白质语言模型(以ProstT5为例),用模型中的 encoder 部分对蛋白质进行编码,得到 embedding features,用于下游的任务。 【ps. 除了手动下载之外,…

物联网AI MicroPython学习之语法 PWM脉宽调制模块

学物联网,来万物简单IoT物联网!! PWM 介绍 模块功能: PWM脉宽调制驱动模块 接口说明 PWM - 构建PWM对象 函数原型:PWM(ch, freq, duty)参数说明: 参数类型必选参数?说明chobjectYPin对象例如&#xf…

【Java 进阶篇】深入理解 Jackson:Java 对象转 JSON 的艺术

嗨,亲爱的小白们!欢迎来到这篇关于 Jackson JSON 解析器中 Java 对象转 JSON 的详细解析指南。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,而 Jackson 作为一个强大的 JSON 解析库,能够帮…

力扣 622.设计循环队列

目录 1.解题思路2.代码实现 1.解题思路 首先,该题是设计循环队列,因此我们有两种实现方法,即数组和链表,但具体考虑后,发现数组实现要更容易一些,因此使用数组实现,因此我们要给出头和尾变量&a…

从android.graphics.Path中取出Point点,Kotlin

从android.graphics.Path中取出Point点&#xff0c;Kotlin /*** 从一条Path中获取多少个Point点*/private fun getPoints(path: Path, pointCount: Int): Array<FloatPoint?> {val points arrayOfNulls<FloatPoint>(pointCount)val pm PathMeasure(path, false)…

预计2023年交付35万台,增速超400%!HUD硬核玩家强势崛起

随着HUD市场渗透率加速提升&#xff0c;其高速增长期已经来临。 W-HUD和AR-HUD在中国市场的萌芽导入期是在2020年前后&#xff0c;此前HUD市场不温不火&#xff0c;主要归因于以往W-HUD FOV较小&#xff0c;成像画面有限&#xff0c;显示内容简单且效果粗糙&#xff1b;而AR-H…

美国国家安全实验室员工详细数据在网上泄露

一个从事出于政治动机的攻击的网络犯罪组织破坏了爱达荷国家实验室&#xff08;INL&#xff09;的人力资源应用程序&#xff0c;该组织周日在电报上发帖称&#xff0c;已获得该核研究实验室员工的详细信息。 黑客组织 SiegedSec 表示&#xff0c;它已经访问了“数十万用户、员…

Window下如何对Redis进行开启与关闭

目录 前言1. 图文界面2. 命令行 前言 由于长期使用Linux界面&#xff0c;对于Window下的Redis&#xff0c;不知如何下手。特此记录该博文 特别注意&#xff0c;刚下载好的Redis&#xff0c;如果需要配置密码&#xff0c;可以再该文件进行配置&#xff1a;redis.windows-servi…

【Node.js】大前端技能最通俗易懂的讲解 快速入门必看

目录 1、概述前端工具VSCode安装 2、NodeJS的安装 3、NodeJS了解和快速入门 4、NodeJS实现HttpServer服务 5、NodeJS实现操作MySQL数据库 Node.js是一个基于Chrome V8引擎的JavaScript运行环境&#xff0c;它允许开发者在服务器端执行Node.js是一个基于Chrome V8引擎的Ja…

模拟量采集----测量输入的电压

生活中的模拟量有很多 大多都为电压信号和电流信号 今天讲如何测量输入的电压信号 由图中的黄线可知&#xff0c;该运放是采用的同相放大器中的电压跟随器 电压跟随器的特点是电压的输入和输出隔离 同相运放的输入与输出的关系是&#xff1a;输出1R2/R1 在图上对应的就是输…

多模态大模型训练数据集汇总介绍

RefCOCO、RefCOCO、RefCOCOg 这三个是从MS-COCO中选取图像得到的数据集&#xff0c;数据集中对所有的 phrase 都有 bbox 的标注。 RefCOCO 共有19,994幅图像&#xff0c;包含142,209个引用表达式&#xff0c;包含50,000个对象实例。RefCOCO 共有19,992幅图像&#xff0c;包含1…

AI大爆发的时代,未来的年轻人怎样获得机会和竞争力?

文章目录 引言AI与教育工作者教育资源不平衡 这次&#xff0c;狼真的来了。 引言 AI正迅猛地改变着我们的生活。 根据高盛发布的一份报告&#xff0c;AI有可能取代3亿个全职工作岗位&#xff0c;影响全球18%的工作岗位。在欧美&#xff0c;或许四分之一的工作可以用AI完成。另…

Echarts 饼状图 Grid 设置详解

文章目录 1. 什么是 Grid&#xff1f;2. Grid 的基本配置3. 饼状图的 Grid 配置4. 实例演示5. 拓展&#xff1a;多饼图的 Grid 配置6. 总结 &#x1f389;Echarts 饼状图 Grid 设置详解 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#…

HarmonyOS云开发基础认证【最新题库 满分答案】

系列文章 HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者基础认证【满分答案】 HarmonyOS云开发基础认证【最新题库 满分答案】 目录 系列文章一、判断题二、单选题三、多选题 一、判断题 1.应用架构的演进依次经历了微服务架构、单体架构、Serverle…

【双指针】盛水最多的容器

盛水最多的容器 文章目录 盛水最多的容器题目描述算法原理思路一思路二 代码实现Java代码实现C代码实现 题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与…

设计模式-解析器-笔记

“领域规则”模式 在特定领域中&#xff0c;某些变化虽然频繁&#xff0c;但可以抽象为某种规则。这时候&#xff0c;结合特定领域&#xff0c;将稳日抽象为语法规则&#xff0c;从而给出在该领域下的一般性解决方案。 典型模式&#xff1a;Interpreter 动机(Motivation) 在…