当前位置: 首页 > news >正文

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主进程的性能有一定影响

相关文章:

redis的高可用之持久化

1、redis的高可用考虑指标 (1)正常服务 (2)数据容量的扩展 (3)数据的安全性 2、redis实现高可用的四种方式 (1)持久化 (2)主从复制 (3&…...

onnx模型转换opset版本和固定动态输入尺寸

背景:之前我想把onnx模型从opset12变成opset12,太慌乱就没找着,最近找到了官网上有示例的,大爱onnx官网,分享给有需求没找着的小伙伴们。 1. onnx模型转换opset版本 官网示例: import onnx from onnx im…...

远程运维如何更高效的远程管理?向日葵的这几项功能会帮到你

远程运维如何更高效的远程管理?向日葵的这几项功能会帮到你 具备一定规模的企业,其IT运维需求普遍会面临设备数量众多、难以统一高效管理、始终存在安全敞口等问题,尤其是针对分部广泛的无人值守设备时,更是如此。 举一个简单的例…...

python BDD 的相关概念

在Python 语言中进行BDD的规格和测试文件的编写的时候,常常会遇到下面的概念: Fixture : 测试设施。设定测试环境的预设状态或值的机制。Background: 背景。所有场景的公共部分。Scenario: 场景。Given : 前置条件Whe…...

【Exception】Error: Dynamic require of “path“ is not supported

Talk is cheap, show me the code. 环境 | Environment kversionOSwindows 11Node.jsv18.14.2npm9.5.0vite5.0.0vue3.3.8 报错日志 | Error log >npm run dev> app10.0.0 dev > viteERROR failed to load config from C:\code\frontend\app1\vite.config.js …...

【蓝桥杯选拔赛真题25】C++两个数比大小 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++两个数比大小 一、题目要求 1、编程实现 2、输入输出 二、算法分析...

C++学习——C++运算符重载(含义、格式、示例、遵循的规则)

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 一、运算符重载的含义 所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同…...

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了,这次就来学习一个3d版本的&…...

编程语言发展史:C语言的诞生及其影响

预计更新 第一部分:早期编程语言 1.1布尔代数和机器语言 1.2汇编语言的出现和发展 1.3高级语言的兴起 第二部分:主流编程语言 1.1 C语言的诞生及其影响 1.2 C语言的发展和应用 1.3 Java语言的出现和发展 1.4 Python语言的兴起和特点 1.5 JavaScript语言…...

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景,一般流程性的测试用例的测试步骤比较多,我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…...

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成,本期紧跟着上期内容,生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…...

潮玩宇宙大逃杀游戏开发源码说明

潮玩宇宙大逃杀游戏是一款简单而刺激的游戏。玩家在倒计时结束前从8个房间中选择一个房间并投入宝石。倒计时结束后,系统会自动生成一个敌人,然后随机挑选一个房间并清除这个房间内的人。其余7个房间内的玩家就可以按照投入比例获得被清除掉玩家的宝石。…...

UE5 操作WebSocket

插件:https://www.unrealengine.com/marketplace/zh-CN/product/websocket-client 参考:http://dascad.net/html/websocket/bp_index.html 1. 安装Plugings 2.测试websocket服务器 http://www.websocket-test.com/ 3.连接服务器 如果在Level BP里使用&a…...

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 (一)w方式 (二)a方式 三、认识系统接口,操作文件 (一)认识文件描述符 (二)举例 (三)…...

素短语的定义

素短语,是指至少含有一个终结符的短语,并且除自身外,不包含更小的素短语。 最左素短语是句型中最左边的素短语。...

【华为OD题库-033】经典屏保-java

题目 DVD机在视频输出时,为了保护电视显像管,在待机状态会显示"屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹:请根据如下要求,实现屏保Logo坐标的计算算法 1、屏幕是一个800 * 600像素的矩形&…...

clang+llvm多进程gdb调试

clangllvm多进程gdb调试 前言1. 命令行gdb2. 父进程调试3. 子进程调试4. 返回父进程 前言 在学习新增llvm的优化pass时,需要跟踪clang及llvm的调用栈。然而llvm通过posix_spawn()创建了新进程,这使得gdb调试必须有一定的技巧了。 1. 命令行gdb 以下命…...

PHP反序列化简单使用

注:比较简陋,仅供参考。 编写PHP代码,实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{ public $name; public $age; public $sex; publi…...

专业课140+总分420+东南大学920专业综合考研,信息学院通信专业考研分享

专业课140总分420东南大学920专业综合考研,信息学院通信专业考研分享 我是三月开始系统考研备战,寒假先看的高数全书,奈何在家效率极其低下,才草草看了前三四章。回校后学习的比较认真,每天大概保持10个小时左右&…...

数据结构与算法编程题11

已知两个链表A和B分别表示两个集合&#xff0c;其元素递增排列。 请设计算法求出A与B的交集&#xff0c;并存放于A链表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…...

终极Html Agility Pack实战指南:5种轻松解决HTML乱码的高效方法

终极Html Agility Pack实战指南&#xff1a;5种轻松解决HTML乱码的高效方法 【免费下载链接】html-agility-pack Html Agility Pack (HAP) is a free and open-source HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT. It is a .NET code libra…...

电流和电路之串联和并联

串联、并联、混联定义串联&#xff1a;依次相连&#xff0c;一条路&#xff0c;开关控全部&#xff0c;一处断全断&#xff0c;即把多个电阻首尾依次相连&#xff0c;中间没有分支&#xff0c;电流只有一条通路。并联&#xff1a;并列相连&#xff0c;多条路&#xff0c;干路控…...

Windsurf AI IDE 保姆级教程:从安装到配置Cascade助手的完整指南

Windsurf AI IDE 保姆级教程&#xff1a;从安装到配置Cascade助手的完整指南 作为一名长期使用各类AI编程工具的开发者&#xff0c;我至今还记得第一次打开Windsurf时那种"未来已来"的震撼感。这款集成了Cascade AI助手的IDE&#xff0c;彻底改变了我编写代码的方式—…...

使用Node.js和Taotoken为Web应用后端集成智能聊天模块

使用Node.js和Taotoken为Web应用后端集成智能聊天模块 1. 准备工作 在开始集成Taotoken到Node.js后端之前&#xff0c;需要确保开发环境已经准备就绪。首先确认Node.js版本在16.x或以上&#xff0c;这是大多数现代JavaScript特性支持的最低版本。创建一个新的项目目录并初始化…...

企业如何利用 Taotoken 实现多模型聚合与统一的成本管控

企业如何利用 Taotoken 实现多模型聚合与统一的成本管控 1. 多模型接入的常见挑战 在企业级应用中同时使用多个大模型已成为常态&#xff0c;但分散接入不同供应商会带来显著的运维负担。技术团队通常需要为每个供应商单独管理 API Key&#xff0c;处理各异的认证方式与计费规…...

别再乱拖图标了!保姆级教程:在Ubuntu 22.04 LTS上为任意软件创建.desktop启动器

在Ubuntu 22.04 LTS上为任意软件创建专业级.desktop启动器 每次从GitHub下载的二进制程序&#xff0c;或是自己编译的工具&#xff0c;是不是总在终端里敲路径启动&#xff1f;今天教你用.desktop文件将这些"野生"软件驯化成系统级应用——带图标、能搜索、可拖拽的那…...

如何在多设备上获得统一的E-Hentai漫画阅读体验

如何在多设备上获得统一的E-Hentai漫画阅读体验 【免费下载链接】JHenTai A cross-platform manga app made for e-hentai & exhentai by Flutter 项目地址: https://gitcode.com/gh_mirrors/jh/JHenTai 你是否曾经在不同设备上使用E-Hentai时&#xff0c;因为界面不…...

静态类型检查落地难?揭秘头部科技公司内部Python标注规范文档(含可直接复用的pyproject.toml模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;静态类型检查落地难&#xff1f;揭秘头部科技公司内部Python标注规范文档&#xff08;含可直接复用的pyproject.toml模板&#xff09; Python 的动态特性赋予开发灵活性&#xff0c;却也让大型项目在协…...

安卓实现左右布局聊天界面

先看效果图。是不是你们想要的。大概就是这样的效果Android 实现左右布局聊天界面&#xff08;好友左、自己右&#xff09; 采用 RecyclerView 双布局 Item 实现&#xff0c;结构清晰、可直接复用&#xff0c;适配聊天气泡样式。 一、整体思路 两种 Item 布局&#xff1a; ite…...

别再被SSL握手失败搞懵了!手把手教你用SSL Labs Server Test排查SAP PI这类企业级系统问题

企业级系统SSL握手失败深度排查指南&#xff1a;从原理到实战 当你看到SAP PI日志中赫然出现"handshake failure"的红色警报时&#xff0c;是否感到一阵头皮发麻&#xff1f;作为连接企业内外系统的关键枢纽&#xff0c;SAP PI的SSL/TLS握手失败往往意味着业务流程的…...