redis的高可用

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.mzph.cn/news/153926.shtml

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

相关文章

2023亚太杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

给新手教师的成长建议

随着教育的不断发展和进步,越来越多的新人加入到教师这个行列中来。从学生到教师,这是一个华丽的转身,需要我们不断地学习和成长。作为一名新手老师,如何才能快速成长呢?以下是一名老师教师给的几点建议: 一…

人工智能对我们的生活影响有多大

随着科技的飞速发展,人工智能已经渗透到我们生活的方方面面,并且越来越受到人们的关注。从智能语音助手到自动驾驶汽车,从智能家居系统到医疗诊断,人工智能技术正在改变着我们的生活方式。那么,人工智能对我们的生活影…

使用 RAFT 的光流:第 1 部分

一、说明 在这篇文章中,我们将了解一种旗舰的光流深度学习方法,该方法获得了 2020 年 ECCV 最佳论文奖,并被引用超过 1000 次。它也是KITTI基准测试中许多性能最佳的模型的基础。该模型称为 RAFT:Recurrent All-Pairs Field Trans…

微信表情太大怎么缩小?一分钟教会你!

在微信的较早版本中,单个表情的最大体积限制为500KB,而在后续版本中,这一限制已经放宽。目前,微信允许上传的单个表情最大体积为2MB。所以,我们只需要把图片或者GIF缩小到2MB即可,下面就向大家介绍三种实用…

如何给面试官解释什么是分布式和集群?

分布式(distributed) 是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。 集群(cluster) 是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群&#…

(论文阅读40-45)图像描述1

40.文献阅读笔记(m-RNN) 简介 题目 Explain Images with Multimodal Recurrent Neural Networks 作者 Junhua Mao, Wei Xu, Yi Yang, Jiang Wang, Alan L. Yuille, arXiv:1410.1090 原文链接 http://arxiv.org/pdf/1410.1090.pdf 关键词 m-RNN、…

Java面试题07

1.线程池都有哪些状态? 线程池的状态有RUNNING(运行中)、SHUTDOWN(关闭中,不接受新任务)、 STOP(立即关闭,中断正在执行任务的线程)和TERMINATED(终止&#x…

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

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

【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的…

深入分析TaskView源码之触摸相关

问题背景 hi,粉丝朋友们: 大家好!android 10以后TaskView作为替代ActivityView的容器,在课程的分屏pip自由窗口专题也进行了相关的详细介绍分析。 这里再补充一下相关的TaskView和桌面内嵌情况下的触摸分析 主要问题点&#xff…

【经验分享】Ubuntu如何设置swap交换

我的Linux小鸡内存只有512兆,经常爆内存,导致很多应用没有办法一直正常运行,可以通过设置swap来缓解一下,虽然和内存的速度无法媲美,但是能一定程度缓解一下问题 文章目录 1. 创建一个交换文件2. 设置正确的权限3. 设置…

腾讯云标准型s5和s6有什么区别?CPU处理器有差异吗?

腾讯云服务器CVM标准型S5和S6有什么区别?都是标准型云服务器,标准型S5是次新一代云服务器规格,标准型S6是最新一代的云服务器,S6实例的CPU处理器主频性能要高于S5实例,同CPU内存配置下的标准型S6实例要比S5实例性能更好…

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

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

OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream

之前已经发了一篇关于centos9下面配置openldap多主高可用集群的内容,不会配置ldap集群的请参考:服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2-CSDN博客 这里跟着前篇文章详细说明如何配置…

RESTful API 设计指南——为什么要用(上)

引言 在上一篇中:RESTful API 设计指南——开篇词 我们介绍了几个十分有争议的案例: 所有的接口都使用Post请求不管成功还是失败,HTTP状态码都返回200API命名千奇百怪 本章我们来深入分析一下,为什么不要像案例中所说的那样干…

Vscode GDB 查看内存的值

在VSCode的GDB图形界面中,你可以使用"调试控制台(Debug Console)"来查看malloc返回的地址里的值。以下是具体的步骤: 首先,你需要在你的代码中设置一个断点,这个断点应该在malloc函数调用之后,这样你可以获…

JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素

例如&#xff0c;下面这段请求的xml代码&#xff0c;在元素body下面又多了一层&#xff0c;嵌套了4个元素&#xff1a; <?xml version"1.0" encoding"UTF-8"?><request><reqtype>04</reqtype><secret>test</secret>…

电机应用开发-编码器的使用

编码器 增量式编码器倍频技术 增量式编码器输出的常见脉冲波形信号形式&#xff1a; 占空比为50%的方波&#xff0c;通道A和通道B相位差为90。 正弦波的模拟信号&#xff0c;通道A和通道B相位差为90。 对于占空比为50%的方波&#xff0c;通道A和通道B相位差为90。先以下图为例…

C++ LibCurl实现Web隐藏目录扫描

LibCurl是一个开源的免费的多协议数据传输开源库&#xff0c;该框架具备跨平台性&#xff0c;开源免费&#xff0c;并提供了包括HTTP、FTP、SMTP、POP3等协议的功能&#xff0c;使用libcurl可以方便地进行网络数据传输操作&#xff0c;如发送HTTP请求、下载文件、发送电子邮件等…