redis的高可用

1.redis的高可用

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

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

在redis中实现高可用技术:持久化,主从复制,哨兵模式,cluster集群

持久化:持久化是最简单的高可用方法,主要作用是数据备份,也就是把redis缓存在内存中的数据保存到本地的硬盘中。(冷备份)

2.redis持久化的两种方式

1.RDB持久化:reids在内存中的数据定时保存到磁盘。(自动执行,手动执行)

2.AOF持久化:redis的操作日志,以追加的方式写入AOF的文件,类似于mysql的binlog

3.RDB的持久化

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

3.1 RDB的触发机制

手动机制:save bgsave都可以生产RDB文件。

save创建RDB文件时,整个redis进程都会被阻塞,期间redis将无法进行读写操作,直到RDB文件创建完成为止。(生产中禁止用save)

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

3.2 手动机制save

终端

redis-cli -h 192.168.233.7 -p 6379

save

/etc/init.d/redis_6379 stop

cd /var/lib/redis/6379

ll

cp dump.rdb /opt/

/etc/init.d/redis_6379 start

flushall

exit

/etc/init.d/redis_6379 stop

cd /opt

cp dump.rdb /var/lib/redis/6379

3.2 手动机制bgsave

终端

bgsave

重开一个

tail -f /var/log/redis_6379.log

exit

/etc/init.d/redis_6379 stop

cd /vat/lib/redis/6379

ll

cp dump.rdb /opt/

/etc/init.d/redis_6379 start

flushall

exit

/etc/init.d/redis_6379 stop

cd /opt

cp dump.rdb /var/lib/redis/6379

4.AOF持久化

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

4.1 持久化配置

vim /etc/redis/6379.conf

700行,开启AOF持久化功能

704 名称可以改,但是.aof不能动,否则系统无法识别

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

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

No:发现AOF文件被截断,Redis将拒绝启动

数据完整性的要求高:no

注重数据服务器的可用性:yes

/etc/init.d/redis_6379 restart

vim /var/lib/redos/6379/appendonly.aof

删除不需要的步骤

4.2 AOF的重写功能

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

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

4.3 AOF同步文件策略

vim /etc/redis/6379.conf

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

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

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

4.4 重写的触发条件

1.手动触发

redis-cli bgrewriteaof

2.自动触发

vim .etc/redis/6379_conf

auto-aof-rewired-precentage 100

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

auto-aof-rewite-min-size 64MB

文件大于基准面,才会进行重写,这个值是AFO文件执行重写的最小值。避免开始启动redis后,文件大小,然后频繁的进行重写。

4.5 AOF重写为什么能够压缩文件

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

2.无效的命令不在写入文件,数据被重复设置 set test=1 set test=2 。删除的数据不会写入set test 1 del test

3.多条命令合并一个。sadd test1 v1 sadd test1 v2 sadd test1 v3 sadd test1 v1 v2 v3

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

5.RDB和AOF之间的优缺点

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

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

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

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

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

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

相关文章

Oracle实时同步技术

Oracle数据库的价值 Oracle数据库是一种高度可靠、安全和强大的关系型数据库管理系统,它具有以下几个方面的价值: 可靠性和稳定性:Oracle数据库以其高度可靠性、稳定性和数据完整性而闻名于世。 安全性:Oracle数据库提供了一系列…

JVM的垃圾收集算法

1.算法的分类 1.1标记清除算法 第一步:标记(找出内存中需要回收的对象,并且把它们标记出来) 根据可达性算法,标记的是存活的对象,然后将其他的空间进行回收 第二步:清除(清除掉被…

阿里云oss存储文件上传功能实现(保姆级教程)

先登录: 点击进入控制台 点击左上角导航栏按钮 搜索oss,点击进入 进入之后点击立即开通oss按钮,开通之后点击下图立即创建,弹出创建Bucket 填上Bucket名称,读写权限改为公共读。其他不变点击确定创建,完成…

LVS+keepalived——高可用集群

lvskeepalived:高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用,于是keepalived这个软件。实现的是调度器的高可用。但是:keepalived不是专门为lvs集群服务的,也可以做其他代理服务器的高可用。 lvs的…

Spring Boot要如何学习?【云驻共创】

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。我这里会分享一些学习Spring Boot的方法和干货,包括…

Python如何实现模板方法设计模式?什么是模板方法设计模式?Python 模板方法设计模式示例代码

什么是模板方法(Template Method)设计模式? 模板方法(Template Method)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。这种模式允许子类为一个算法的特定步骤提供…

【Flink】Process Function

目录 1、ProcessFunction解析 1.1 抽象方法.processElement() 1.2 非抽象方法.onTimer() 2、Flink中8个不同的处理函数 2.1 ProcessFunction 2.2 KeyedProcessFunction 2.3 ProcessWindowFunction 2.4 ProcessAllWindowFunction 2.5 CoProcessFunction 2.6 ProcessJo…

【Java系列】SpringBoot 集成MongoDB 详细介绍

目录 写在前面 一、步骤介绍 步骤 1: 添加 MongoDB 依赖 步骤 2: 配置 MongoDB 连接信息 步骤 3: 创建实体类 步骤 4: 创建 Repository 接口 步骤 5: 使用 Repository 进行操作 二、特殊处理 写在前面 在Spring Boot中集成MongoDB的过程相对简单,以下是一个…

Linux下使用宏定义判断系统架构和系统类型

文章目录 查看编译器当前支持的宏定义查找指定的宏不同架构不同系统 附录-编译器内部常用的一些宏定义宏定义实际应用使用宏定义判断系统架构使用宏定义判断系统类型 一般情况下在linux下做C/C方面的开发不需要太关注系统架构,当然如果涉及到不同架构下的适配问题&a…

Python---变量的作用域

变量作用域:指的是变量的作用范围(变量在哪里可用,在哪里不可用),主要分为两类:局部变量和全局变量。 定义在函数外部的变量就称之为全局变量; 定义在函数内部的变量就称之为局部变量。 # 定义…

基于 Eureka 的 Ribbon 负载均衡实现原理【SpringCloud 源码分析】

目录 一、前言 二、源码分析 三、负载均衡策略 一、前言 如下图,我们在 orderserver 中通过 restTemplate 向 usersever 发起 http 请求,在服务拉取的时候,主机名 localhost 是用服务名 userserver 代替的,那么该 url 是一个可…

Android Studio 引入Xui框架-简单应用

Android Studio Flamingo | 2022.2.1 Patch 2 Android 11开发、Gradle Version 8.0、 jdk17 源代码:GitHub - xuexiangjys/XUI: 💍A simple and elegant Android native UI framework, free your hands! (一个简洁而优雅的Android原生UI框架&#xff…

录屏软件自动开启录视频,是如何实现的?

工作要留痕,作为职场人的一项必备技能,因此许多人在做一些重要操作的时候,就会提前开启录屏软件,把操作的每一个步骤进行录制,以避免在出现问题的时候进行检查。当每天都需要在固定的时间点重复某项工作的时候&#xf…

【力扣】从零开始的动态规划

【力扣】从零开始的动态规划 文章目录 【力扣】从零开始的动态规划开头139. 单词拆分解题思路 45. 跳跃游戏 II解题思路 5. 最长回文子串解题思路 1143. 最长公共子序列解题思路 931. 下降路径最小和解题思路 开头 本力扣题解用5题来引出动态规划的解题步骤,用于本…

竞赛选题 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 🔥 优质竞赛项目系列,今天要分享的是 行人车辆目标检测计数系统 …

【计算机网络笔记】路由算法之距离向量路由算法

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

DAY60 84.柱状图中最大的矩形

84.柱状图中最大的矩形 题目要求:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 思路 单调栈 本地单调栈的解法和接雨水的题目是遥相呼…

【docker】虚拟化和docker容器概念

基础了解 IAAS: 基础设施服务,(只提供基础设施,没有系统) **SAAS: ** 软件即服务,(提供基础设施和系统) PAAS: 平台即服务,(提供基…

《白帽子讲web安全》

第十四章 PHP安全 文件包含漏洞是“代码注入”的一种。“代码注入”这种攻击,其原理就是注入一段用户能控制的脚本或代码,并让服务器端执行。“代码注入”的典型代表就是文件包含(File Inclusion)。文件包含可能会出现在JSP、PHP…

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测

时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测 目录 时序预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机时间序列预测 1.data为数据集…