redis的高可用

news2024/10/7 4:34:02

redis-cli -h 192.168.233.10 -p 6379

redis的数据类型的增删改查

redis的高可用在集群当中有一个非常重要的指标,提供正常服务的时间的百分比(365天)

99.9%

redis的高可用含义更加广泛,正常服务是指标之一,数据容量的扩展,数据的安全性

在redis种实现高可用技术:①持久化;②主从复制;③哨兵模式;④cluster集群

持久化

持久化是最简单的高可用方法

主要作用是数据备份,也就是把redis缓存在内存中的数据保存到本地的硬盘中(冷备份方式)

redis持久化的两种方式

1、RDB持久化

redis在内存中的数据定时保存到磁盘

自动执行、手动执行皆可

指在指定的时间间隔内,将内存中当前进程中的数据生成快照保存到硬盘(快照持久化),用二进制压缩存储。保存的文件名的后缀是 .rdb。redis启动时,可以直接读取快照文件,实现数据恢复

RDB的触发机制

①手动机制

save 和 bgsave 都可以生成RDB文件

save 创建RDB文件时,整个redis进程会被阻塞,期间redis无法进行读写操作,直到RDB文件创建完成为止

bgsave  

bgsave就是主从复制的机制

bgsave特点:主进程会通过fork机制创建一个子进程,子进程的创建过程中,主进程会阻塞,子进程创建完毕,主进程解除阻塞,子进程来创建RDB文件,创建完成之后,通知主进程更新通知信息

②自动机制

219gg

900s   当时间到900s时,如果redis的数据至少发生一次变化,就执行bgsave

数据变动越多,执行时间越短。如果数据变动不大,那时间间隔要长一点儿

除了配智文件中的save m n之外

主从复制,从节点执行全量复制操作,直接点会执行bgsave,把rdb文件传送给从节点

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

如果启动时加载rdb文件被损坏,日志中会打印错误,redis会拒绝启动。需要用redis-check-rdb 修复RDB的持久化文件

242gg

开启RDB压缩功能

在高并发场景建议关闭

264gg

保存持久化文件的位置

2、AOF持久化

redis的操作日志以追加的方式写入一个AOF的文件,类似于MySQL的binlog

AOF持久化是将redis的每一次读、写、删除命令记录到一个单独的、以 .aof为结尾的文件(查询操作不记录,由主进程记录)。当redis重启时,再次执行AOF文件中的命令来恢复数据

AOF的实时性更好,也是主流的持久化方案

700gg(no改成yes

704gg

796gg

Q:出现截断怎么办?

aof-load-truncated yes

用于判断AOF文件,如果被截断时的行为

yes:发现被截断(写入过程中出现异常,导致文件未能完全写入),redis会尽可能的恢复文件中的数据,redis会继续运行

no:发现AOE文件被截断,redis将拒绝启动

A:对数据完整性要求高,用no;注重数据服务器的可用性,用yes。在可以的情况下,一般是yes

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

AOF的重写功能

为啥要有重写:随着时间增长,AOF文件当中的数据也会不断增加,AOF的文件也会越来越大。过大的AOF文件不仅仅会影响服务器的正常运行,也会导致数据恢复的时间过长

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

*文件重写虽然是AOF持久化强烈推荐的,但不是必须的。没有重写,并不影响redis启动时读取数据。在实际中,会关闭自动的文件重写,通过定时任务来完成

AOF同步文件策略的三种方式

729gg

always 写入过程中,立刻调用redis系统的fsync操作写入到AOF文件,这次写入都执行同步,硬盘的性能有瓶颈,硬盘的寿命也大大降低

no 有写入操作,调用系统的write操作,不对AOF文件进行同步,操作系统来同步,同步周期30s,文件同步的时间不可控。缓冲区会堆积大量数据,数据安全也无法保证

everysec 命令写入,调用write操作,write操作结束后,线程会返回。FSYNC同步文件操作由专门的线程每秒调用一次。这是一个折中的策略,是性能和安全性的平衡,是redis的默认配置,也是推荐配置

重写的触发条件

1、手动触发

redis-cli bgrewriteaof

工作流程

2、自动触发

771gg

100  文件的大小超过基准的百分比。默认值就是100,也就是文件大小超过2倍时执行bgrewriteaof。设置为0,禁用自动触发

64mb 文件大于基准值才会进行重写。这个值是AOF文件执行重写的最小值。避免开始启动redis后,文件太小,然后频繁的进行重写。这个必须要有。

创建定时任务,100必须改成0

AOF重写为什么可以压缩文件?

1、重写过程中,如果有过期的数据,不会写入文件

2、无效的命令不再写入文件,数据被重复设置set test 1  set test 2;删除的数据也不会写入set test 1   del test

3、多条命令合并成一个。sadd test1 v1 sadd test1 V2 sdd test1 3

sadd test1 V1 V2 W3

重写之后,AOF的文件当中的命令减少了,空间也少了,恢复速度也增加了。(重写不是必须的。)

RDB和AQF之间的优缺点:

RDB的优点: 文件体积小,网络传输速度很快,适合全量复制。恢复速度也比AOF要快.

缺点: 做不到实时的持久化,数据如此重要,不能够容忍丢失的。另外RDB需要满足特定的格式,兼容性很差,老版本的RDB不支持新版本(redis版本一定要一致)

AOF的优点: 秒级持久化。兼容性好(文本格式保存的是命令)

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

redis的持久化也算是高可用的一种,通过备份文件来恢复数据,冷备份

持久化的两种方法:RDB和AOFRDB:save线上禁用;bgsave

AOF:实时持久化。写入的操作的命令,除了查 set del会记录get select不入;实时记录,恢复方式类似于MySQL的binlog

AOF重写:推荐,但是不是必须的。重写也是主进程创建一个子进程,在过程中产生的数据以及同步策略都是写入到AOF文件当中

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

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

相关文章

利用Python进行中文分词——实现中文文本处理的基础工具

中文是一种复杂的语言,其词语之间没有明显的分隔符号,这给中文文本处理带来了一定的挑战。为了更好地处理中文文本数据,Python提供了许多优秀的中文分词工具和库。中文分词是将连续的中文文本切分成独立词语的过程,是中文文本处理…

Kubernetes Gateway API 攻略:解锁集群流量服务新维度!

Kubernetes Gateway API 刚刚 GA,旨在改进将集群服务暴露给外部的过程。这其中包括一套更标准、更强大的 API资源,用于管理已暴露的服务。在这篇文章中,我将介绍 Gateway API 资源,并以 Istio 为例来展示这些资源是如何关联的。通…

抖店与维格表的对接只需轻松几步

通过数环通,您可以使用不到几分钟的时间即可实现抖店与维格表的对接与集成,从而高效实现工作流程自动化,降本增效! 1.产品介绍 维格表是一种数据协作工具,具有多维度表格、实时在线编辑、数据可视化等特点。它可以帮助…

数字化转型与企业创新—基于中国上市公司年报的经验证据(2007-2022年)

参照潘红波(2022)的做法,对来自中南大学学报《数字化转型与企业创新—基于中国上市公司年报的经验证据》一文中的基准回归部分进行复刻。文章实证检验数字化转型对企业创新的影响。用年报词频衡量 一、数据介绍 数据名称:数字化转…

el-date-picker ie模式下 初始化未赋值;未清空

el-date-picker ie模式下 初始化未赋值;未清空 给 dete-picker 加key属性 eg:

二蛋赠书九期:《机器学习图解》

前言 大家好!我是二蛋,一个热爱技术、乐于分享的工程师。在过去的几年里,我一直通过各种渠道与大家分享技术知识和经验。我深知,每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此,我非常感激大家一直…

V8引擎隐藏类(VIP课程)

上一章我们讲了V8如何存储的对象,其中提到了隐藏类,这一章我们来看看隐藏类到底做了什么。 为什么要讲V8???? 隐藏类是V8引擎在运行时自动生成和管理的数据结构,用于跟踪对象的属性和方法 隐藏…

【C++心愿便利店】No.14---C++之探索list底层原理

文章目录 前言一、list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list operations1.2.7 list的迭代器失效 二、list的模拟实现2.1 定义一个结构体实现list的…

北斗成为全球民航通用卫星导航系统

北斗成为全球民航通用卫星导航系统 日前,包含北斗卫星导航系统(以下简称“北斗系统”)标准和建议措施的《国际民用航空公约》附件10最新修订版正式生效。这标志着北斗系统正式加入国际民航组织(ICAO)标准,成…

NLP:使用 SciKit Learn 的文本矢量化方法

一、说明 本文是使用所有 SciKit Learns 预处理方法生成文本数字表示的深入解释和教程。对于以下每个矢量化器,将给出一个简短的定义和实际示例:one-hot、count、dict、TfIdf 和哈希矢量化器。 SciKit Learn 是一个用于机器学习项目的广泛库,…

轻量封装WebGPU渲染系统示例<36>- 广告板(Billboard)(WGSL源码)

原理不再赘述&#xff0c;请见wgsl shader实现。 当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/BillboardEntityTest.ts 当前示例运行效果: WGSL顶点shader: group(0) binding(0) var<uniform> objMat :…

腾讯云CVM标准型S5性能如何?CPU采用什么型号?

腾讯云服务器CVM标准型S5实例具有稳定的计算性能&#xff0c;CVM 2核2G S5活动优惠价格280.8元一年自带1M带宽&#xff0c;15个月313.2元、2核4G配置748.2元15个月&#xff0c;CPU内存配置还可以选择4核8G、8核16G等配置&#xff0c;公网带宽可选1M、3M、5M或10M&#xff0c;腾…

维基百科文章爬虫和聚类【二】:KMeans

维基百科是丰富的信息和知识来源。它可以方便地构建为带有类别和其他文章链接的文章&#xff0c;还形成了相关文档的网络。我的 NLP 项目下载、处理和应用维基百科文章上的机器学习算法。 一、说明 在我的上一篇文章中&#xff0c;展示了该项目的轮廓&#xff0c;并奠定了其基础…

【JavaEE】Spring核心与设计思想(控制反转式程序演示、IoC、DI)

一、什么是Spring&#xff1f; 通常所说的 Spring 指的是 Spring Framework&#xff08;Spring 框架&#xff09;&#xff0c;它是⼀个开源框架&#xff0c;有着活跃⽽庞⼤的社区&#xff0c;这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景&#xff0c;它可以让 …

【机器学习】对比学习(contrastive learning)

对比学习是一种机器学习技术&#xff0c;算法学习区分相似和不相似的数据点。对比学习的目标是学习数据的表示&#xff0c;以捕捉不同数据点之间的基本结构和关系。 在对比学习中&#xff0c;算法被训练最大化相似数据点之间的相似度&#xff0c;并最小化不相似数据点之间的相似…

基于springboot实现大学生就业服务平台系统项目【项目源码】

基于springboot实现大学生就业服务平台系统演示 Java技术 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著…

桌面运维。

Windows运行命令&#xff1a; color 01/02切换字符颜色cls 清屏ipconfig 设备的ip信息ipconfig /all 设备ip的所有信息 破解系统密码&#xff1a; 进PE系统&#xff0c;使用里面的工具破解 vmware workstation安装 网卡 网卡&#xff1a;ncpa.cpl window远程控制 mstsc …

Transformers库总体介绍

Transformers库是什么 Transformers 库是一个在自然语言处理&#xff08;NLP&#xff09;领域广泛使用的强大库&#xff0c;提供了一套全面的工具和预训练模型&#xff0c;用于执行各种 NLP 任务。以下是 transformers 库提供的主要功能&#xff1a; 1.预训练模型&#xff1a…

【开源】基于JAVA的社区买菜系统

项目编号&#xff1a; S 011 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S011&#xff0c;文末获取源码。} 项目编号&#xff1a;S011&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1…

# 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅

Prolog 的语法很奇怪,需要一些时间来适应,所以我花了点时间,想用Prolot来表示和验证离散逻辑的16组等价公式。 1. 双重否定律 (Double Negation Law) A ⇔A 首先&#xff0c;我们来看看双重否定律。在 Prolog 中&#xff0c;我们可以这样验证它&#xff1a; fun1(A,Z):-membe…