redis的持久化机制以及集群模式

1.redis的持久化机制

内存数据库具有高速读写的优势,但由于数据存储在内存中,一旦服务器停止或崩溃,所有数据将会丢失。持久化机制的引入旨在将内存中的数据持久化到磁盘上,从而在服务器重启后能够恢复数据,提供更好的数据保护和可靠性。

1.1 redis实现持久化的方式
Redis提供了两种主要的持久化机制,分别是RDB快照(Snapshotting)和AOF日志(Append-Only File)。这两种机制可以根据不同的需求和场景来选择使用。

RDB快照(Snapshotting):默认情况下使用该模式

RDB快照是一种全量持久化方式,它会周期性地将内存中的数据以二进制格式保存到磁盘上的RDB文件。RDB文件是一个经过压缩的二进制文件,包含了数据库在某个时间点的数据快照。RDB快照有助于实现紧凑的数据存储,适合用于备份和恢复。

什么时候触发RDB模式?

1.手动触发:save和bgsave手动触发rdb。 保存的名称dump.rdb

在这里插入图片描述

2.自动触发: 通过修改redis.conf配置文件

在这里插入图片描述

优点:- RDB快照在恢复大数据集时速度较快,因为它是全量的数据快照。
- 由于RDB文件是压缩的二进制文件,它在磁盘上的存储空间相对较小。
- 适用于数据备份和灾难恢复。缺点:- RDB快照是周期性的全量持久化,可能导致某个时间点之后的数据丢失。
- 在保存快照时,Redis服务器会阻塞,可能对系统性能造成影响。

AOF日志(Append-Only File):默认不开启,需要改配置文件开启

AOF日志是一种追加式持久化方式,它记录了每个写操作命令,以追加的方式将命令写入AOF文件。通过重新执行AOF文件中的命令,可以重建出数据在内存中的状态。AOF日志提供了更精确的持久化,适用于需要更高数据安全性和实时性的场景。

使用时把redis.conf配置文件中的appendonly no改为即可appendonly yes

在这里插入图片描述

启用后生成的日志文件:

在这里插入图片描述

优点:- AOF日志可以实现更精确的数据持久化,每个写操作都会被记录。
- 在AOF文件中,数据可以更好地恢复,因为它保存了所有的写操作历史。
- AOF日志适用于需要实时恢复数据的场景,如秒级数据恢复要求。缺点:- AOF日志相对于RDB快照来说,可能会占用更多的磁盘空间,因为它是记录每个写操作的文本文件。
- AOF日志在恢复大数据集时可能会比RDB快照慢,因为需要逐条执行写操作。

2. redis的集群模式

redis提供了三种集群模式.

第一种: 主从模式。redis3以下

第二种: 哨兵模式 redis5以下

第三种: 去中心化模式

为什么使用redis集群?

提高并发量,提高了可用性。

2.1 主从模式

redis主从模式表示一个主节点跟若干个从节点。 主节点可以负责写操作和读操作。而从节点只负责读操作。主节点的数据会自动同步到所有的从节点上。

第一步:搭建redis主从模式修改redis.conf配置文件
1.端口号
2.dump文件的名称
3.aof的名称第二步:启动redis服务并配置主从关系
配从不配主  slaveof 主节点IP 主节点portinfo replication 查看主从的状态

配置从节点

在这里插入图片描述

查看主节点
在这里插入图片描述

查看从节点

在这里插入图片描述

思考?
1. 如果某台slave宕机,如果恢复后是否具有master新增的数据呢。 [有]
2. master宕机后,slave会不会自动选举主节点。 [不会] ---[导致一旦主节点宕机,无法进行写操作。]
2.2 哨兵模式

为了解决主从模式的缺陷: 当主节点宕机后,从节点无法直接上位。

工作原理:

在这里插入图片描述

第一步:
修改sentinel.conf 

在这里插入图片描述

第二步:启动哨兵服务
redis-sentinel sentinel.conf
注意:在linux桥接模式时候,建议搭建的linux服务器放行所有哨兵,以及所有redis的端口号(不建议关闭防火墙)

当主节点故障时:

在这里插入图片描述

2.3 去中心化模式

redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个整数结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。

当你往Redis Cluster中加入一个Key时,会根据crc16(key) mod 16384计算这个key应该分布到哪个hash slot中,一个hash slot中会有很多key和value。你可以理解成表的分区,使用单节点时的redis时只有一个表,所有的key都放在这个表里;改用Redis Cluster以后会自动为你生成16384个分区表,你insert数据时会根据上面的简单算法来决定你的key应该存在哪个分区,每个分区里有很多key。

最少三主三从

第一步:修改redis.conf配置文件
1. 修改端口 
2. dump文件名
3. aof文件名
4. aof目录名 
5. 开启集群模式 cluster-enabled yes
6. cluster-config-file nodes-7001.conf

在这里插入图片描述

第二步:启动redis
第三步:分配槽以及主从关系
redis-cli --cluster create --cluster-replicas 1 172.16.7.110:7000 172.16.7.149:6391 172.16.7.110:7001 172.16.7.149:6394 172.16.7.110:7002 172.16.7.149:6395

发现172.16.7.110:7001为主节点,但是出现故障时(可以自动选举在从节点中)

在这里插入图片描述

命令行的客户端

redis-cli -c -h 192.168.111.188 -p 7006

在这里插入图片描述

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

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

相关文章

初阶数据结构——二叉树大汇总

这篇博客将会讲到二叉树的部分内容及堆的相关知识~ 这里将会涉及到大量的递归(头大) 目录 1.树 1.1树的概念 1.2树的相关概念 1.3树的表示 1.4树的实际应用 2.二叉树 2.1二叉树的概念 2.2特殊的二叉树 2.2.1 满二叉树 2.2.2 完全二叉树 2.2…

sdut-C语言实验——数列求和2

正整数序列是指从1开始的序列&#xff0c;例如{1,2,3,4&#xff0c;......} 给定一个整数 n&#xff0c;现在请你求出正整数序列 1 - n 的和。 输入格式: 输入一个整数 n 。&#xff08;1 < n < 1000&#xff09; 输出格式: 输出一个整数&#xff0c;即为正确答案。 输入…

如何用python在大麦网抢票?新手也能学会!

使用Python如何在大麦网抢票 背景介绍 大麦网是一个知名的演出票务平台&#xff0c;很多演唱会、体育赛事等热门活动的门票都可以在这里购买。由于热门场次的门票往往会在开售时秒光&#xff0c;因此抢票成为了很多人的一项技术活。本文将介绍如何使用Python编写程序来自动在大…

基于STM32的逻辑分析仪

文章目录 一、逻辑分析仪体验1、使用示例1.1 逻辑分析仪1.2 开源软件PulseView 2、核心技术2.1 技术方案2.2 信号采集与存储2.3 数据上传 3、使用逻辑分析仪4、 SourceInsight 使用技巧4.1新建工程4.2 设置工程名及工程数据目录4.3 指定源码目录4.4 添加源码4.5 同步文件4.6 操…

Llama 3.1:Meta的最新AI模型发布

Meta的最新AI模型发布 性能特点基准测试教学模型模型结构开源和可用性 2024年7月23日&#xff0c;Meta正式发布了其开源大型语言模型Llama的最新版本——Llama 3.1。这个版本拥有4050亿参数&#xff0c;是迄今为止Meta发布的最大版本。Llama 3.1是对今年4月发布的Llama 3的更新…

Jdk11与Jdk17区别

JDK 11与JDK 17之间存在一些显著的不同点,以下是具体的差异归纳: 模块化与安全性 JDK 11引入了模块化系统(Jigsaw项目),使得开发者可以将代码组织成模块,提高了大型项目的可维护性和可扩展性。 JDK 17作为长期支持(LTS)版本,增强了模块系统的安全性和可靠性,通过封…

在windows上使用Docker部署一个简易的web程序

使用Docker部署一个python的web服务&#x1f680; 由于是从事算法相关工作&#xff0c;之前在项目中&#xff0c;需要将写完的代码服务&#xff0c;部署在docker上&#xff0c;以此是开始接触了Docker这个工具&#xff0c;由于之前也没系统学习过&#xff0c;之后应该可能还会用…

视频压缩大小怎么压缩?几种简单视频压缩方法教给你

现如今&#xff0c;视频已成为我们生活和工作中不可或缺的一部分。然而&#xff0c;高清视频往往伴随着庞大的文件体积&#xff0c;这给存储和传输带来了不小的挑战。这时候我们就需要对视频进行压缩处理&#xff0c;方便储存和发送&#xff0c;那么怎么有效压缩视频呢&#xf…

java之回合制游戏以及如何优化

public class Role {private String name;private int blood;//空参public Role() {}//包含全部参数的构造public Role(String name, int blood) {this.name name;this.blood blood;}public String getName() {return name;}public void setName(String name) {this.name na…

提交高通量测序原始数据到 SRA --- 操作流程

❝ 写在前面 由于最近在提交课题数据到 NCBI 数据库&#xff0c;整理了相关笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. 提交高通量测序数据到 GEO --- 说明书 目录 1 注册 NCBI 账…

HTML中a标签跳转后路径不正确?

场景&#xff1a;页面中动态设置了一个tag跳转的a标签&#xff0c;由于页面路径都是同级的一直没发现问题&#xff0c;后来新增页签想通过模块目录分类&#xff0c;就出现了跳转后地址路径重复404问题&#xff0c;地址上面总会多出路径拼接 页签举例&#xff1a; <ul id&q…

【C++】关联容器探秘:Map与Multimap详解

目录 1.映射类 map 0. 引入 pair&#xff1a; 1.定义 2.插入 3. 遍历 4.❗operator[]的实现 5. 插入 运用 2.Multimap 类 0. 引入&#xff1a;不去重的 Multi 1. Multimap 不支持 Operator[] 2. Multimap 的删除 1.映射类 map 0. 引入 pair&#xff1a; 在C中&…

1 go语言环境的搭建

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;由浅入深讲解Go语言&#xff0c;希望大家都能够从中有所收获&#xff0c;也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;大家一起学习&#xff0c;…

软件测试---测试需求分析

课程目标 什么是软件测试需求 软件测试需求的必要性 如何对软件测试需求进行分析&#xff08;重点&#xff09; 课程补充 灰度测试&#xff08;基于功能&#xff09;&#xff1a;先发布部分功能&#xff0c;然后看用户的反馈&#xff0c;再去发布另外一部分的功能更新。 A/B测…

运筹学笔记

计算的时间问题&#xff01;计算机解决了计算量的问题&#xff01; 计算机的发展对运筹学研究起到了极大的促进作用。 运筹学的一个特征之一是它常常会考虑寻求问题模型的最佳解决方案&#xff08;称为最优解&#xff09;。 没有人能成为运筹学所有方面的专家。 分析学越来越流…

Pytorch 8

这节课是讲mini_batch数据下载的 from torch.utils.data import Dataset from torch.utils.data import DataLoader第一个类是抽象类&#xff0c;只能继承 第二个可以直接用 class DiabetesDataset(Dataset):def __init__(self, filepath):xy np.loadtxt(filepath, delimit…

redis的分片集群(仅供自己参考)

前言&#xff1a;为什么使用分片集群&#xff1a;因为redis的主从和哨兵机制主要是用来解决redis的高并发读的问题&#xff0c;还有redis的高并发的写的问题没有解决。使用分片集群就可以很好的解决redis写的问题&#xff0c;有多个master就可以实现并发的写。同时&#xff0c;…

C++学习笔记04-补充知识点(问题-解答自查版)

前言 以下问题以Q&A形式记录&#xff0c;基本上都是笔者在初学一轮后&#xff0c;掌握不牢或者频繁忘记的点 Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系&#xff0c;也适合做查漏补缺和复盘。 本文对读者可以用作自查&#xff0c;答案在后面&#xff0…

Mysql-高级实战案例

文章目录 千万级用户场景下的运营系统SQL调优1. 索引优化2. 查询优化3. 分析查询执行计划4. 存储引擎配置5. 数据库架构优化6. 监控与报警7. 定期维护8. 软件升级 亿级数据量商品系统的SQL调优实战1. 索引优化2. 查询重构3. 分区策略4. 优化查询计划5. 缓存策略6. 数据库架构调…

国内微短剧系统平台抖音微信付费小程序app开发源代码交付

微短剧作为当下热门的内容&#xff0c;结合抖音平台的广泛用户基础&#xff0c;开发微短剧付费小程序APP具有显著的市场潜力&#xff0c;用户对于短剧内容的需求旺盛&#xff0c;特别是在言情、总裁、赘婿等热门题材方面&#xff0c;接下来给大家普及一下微短剧小程序系统。 顺…