Redis持久化和集群模式

news2024/11/15 15:46:56

目录

1、什么是持久化?

2、Redis实现持久化的方式

3、RDB(Redis DataBase)快照模式

3.1 手动触发

3.1.1 save

3.1.2 bgsave 

 3.2 自动触发

 4、AOF(append only File)日志追加模式

4.1 开启aof

4.2 RBD和AOF的区别

 5、Redis的集群模式

5.1 主从模式

5.1.1 主从关系图解

5.1.2 主从关系搭建

 5.2 哨兵模式

5.2.1 监控的功能

5.2.2 选举的机制

 5.2.3 哨兵模式搭建

5.3 去中心化模式 

5.3.1 去中心化模式图解

5.3.2  去中心化模式搭建


1、什么是持久化?

        持久化就是把内存中的数据存储到磁盘的过程。同时也可以把磁盘中的数据加载到内存中。将数据存储在磁盘中,哪怕Redis宕机也不会丢失数据(未来就会涉及到序列化问题)

2、Redis实现持久化的方式

Redis可以通过快照模式RDB或日志追加模式AOF实现持久化

3、RDB(Redis DataBase)快照模式

每隔一段时间,对内存中的数据进行快照存储。默认启用该模式

触发方式分为两种,分别是手动触发和自动触发。

3.1 手动触发

通过save和bgsave命令,可以手动触发rdb。配置文件的保存名字默认为dump.rdb

3.1.1 save

save命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:

3.1.2 bgsave 

执行时,Redis会在后台异步进行快照操作,快照时,同时可以响应客户端请求。bgsave在执行该命令时会fork出一个新的线程,单独执行rdb持久化操作,而不影响其他客户对redis服务的操作,是Redis中唯一使用多线程的地方。具体流程如下:

 3.2 自动触发

通过配置文件来设置自动触发。在redis.conf中,搜索save(大概四百多行)。

save 10 5 20 10 ——10秒内改变5次或者20秒内改变10次就会自动保存。

save 10 5 ——10秒内改变5次就会自动保存。

 4、AOF(append only File)日志追加模式

AOF[append only file]: 日志[每执行一个写操作]追加模式,默认redis没有开启该模式。需要手动开启。默认的文件名appendonly.aof

4.1 开启aof

把配置文件中的appendonly yes即可

当启动redis服务器,会把日志文件中的命令从上到下执行一下。

4.2 RBD和AOF的区别

  1. RDB快照模式,数据备份和恢复速度快。缺点: 数据完整性差。数据可能丢失多。

  2. AOF日志追加: 数据完整性高。 缺点: 数据备份呵呵恢复速度慢。

 5、Redis的集群模式

redis提供了三种集群模式.

第一种: 主从模式。版本3以下

第二种: 哨兵模式   版本5以下

第三种: 去中心化模式     版本5以上

5.1 主从模式

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

5.1.1 主从关系图解

5.1.2 主从关系搭建

1、修改配置文件

  • 端口号
  • dump文件的名称
  • aof的文件名

2、开启三台Redis服务 

  • redis-server redisXXX.conf
  • 配置文件

3、配置主从关系 

  • 配从不配主 info replication查看主从关系
  • 语法:laveof 主节点IP 主节点端口号
  • 结果图

4、注意: 

  • master宕机后,slave不会自动选择老大
  • 如果某台slave宕机,恢复后会具有master具有的数据
  • 主从的缺点:不会自动选举master节点,导致一旦主节点宕机,就无法进行写操作。

 5.2 哨兵模式

5.2.1 监控的功能

sentinel基于心跳机制监测服务,每隔1秒向集群的每个实例发送ping命令

  • 主观下线:如果某sentinel节点发现某实例未在规定时间响应,则认为该实例主观下线
  • 客观下线:若超过指定数量(quorum)的sentinel都认为该实例主观下线,则该实例客观下线。quorum值最后超过sentinel实例数量的一半。

图示: 

5.2.2 选举的机制

一旦发现master故障,sentinel需要在salve中选择一个作为新的master,选择依据如下:

  • 首先判断slave节点与master节点断开时间长短,如果超过指定值(down-after-milliseconds*10)则会排除该slave节点。
  • 然后判断slave节点的slave-priority值,越小优先级越高,如果是0则永不参与选举。
  • 如果slave-priority值一样,则判断slave节点的offset值,越大说明数据越新,优先级越高。
  • 最后是判断slave节点的运行id大小,越小优先级越高。

 5.2.3 哨兵模式搭建

1、修改配置文件sentinel.conf

 2、启动哨兵服务

redis-sentinel sentinel.conf

5.3 去中心化模式 

去中心化至少三主三从,否则搭建不起来,如下图所示

5.3.1 去中心化模式图解

 

        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。

5.3.2  去中心化模式搭建

准备三主三从:

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

 1、启动Redis

 2、分配槽以及主从关系

分槽,以及设置主从关系。 副本
redis-cli --cluster create --cluster-replicas 1 192.168.111.188:7001

192.168.111.188:7002

192.168.111.188:7003

192.168.111.188:7004

192.168.111.188:7005

192.168.111.188:7006 

 3、命令行的客户端

redis-cli -c -h IP地址 -p 端口号

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

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

相关文章

mysql JSON特性优化

有朋友问到,mysql如果要根据json中的某个属性过滤,数据量大的话,性能很差,要如何提高性能? 为什么要用json串? 由于一些特定场景,mysql需要用到json串,例如文档,不同的…

【Matlab 传感器布局优化】基于群智能算法的wsn覆盖优化研究

一 背景介绍 无线传感器网络(Wireless Sensor Network, WSN)作为远程环境监测系统应用的关键技术,能够在有限的能源供应下提供高效的传感和通信服务。覆盖控制是保证高效通信和可靠数据传输的重要手段。鉴于复杂的物理环境限制了节点部署方式…

《JavaEE篇》--多线程(2)

《JavaEE篇》--多线程(1) 线程安全 线程不安全 我们先来观察一个线程不安全的案例: public class Demo {private static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {//让count自增5W次…

zabbix“专家坐诊”第247期问答

问题一 Q:乐维MCM免费版还需要再单独安装一个Zabbix连接么? A:估计是perseusZ_server服务进程因为重复安装导致服务挂了。试下能不能启动起来?service perseusZ_server status Q:正常启动的,页面刷新了还…

谷粒商城实战笔记-50-51-商品分类的删除

文章目录 一,50-商品服务-API-三级分类-删除-逻辑删除1,逻辑删除的配置1.1 配置全局的逻辑删除规则(可省略)1.2 配置逻辑删除Bean(可省略)1.3 Bean相应字段上加上注解TableLogic 2,后台接口开发…

力扣高频SQL 50题(基础版)第十题

文章目录 力扣高频SQL 50题(基础版)第十题1661. 每台机器的进程平均运行时间题目说明思路分析实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题(基础版)第十题 1661. 每台机器的进程平均运行时间 题目说明 表: Activity…

数里行间创始人郭振:AIGC如何打造跨境电商增长新引擎

导读:在跨境电商领域,AI客服已经能够实现50%的问题平均解决率和不低于人工标准的客户满意度。 在生成式AI的商业化应用领域,跨境电商行业一直走在前列,成为最早实现技术落地的先锋之一。 “我们的AI客服机器人,已经帮助…

01 MySQL

文章目录 MySQL1、数据库相关概念2、MySQL3、SQL概述4、DDL:数据库操作5、DDL:表操作6、DML7、DQL8、约束9、数据库设计10、多表查询11、事务 MySQL 1、数据库相关概念 数据库 (1)存储和管理数据的仓库,数据是有组织的进行存储。 &#xff0…

【接口测试】params传参与body传参区别

文章目录 一.params传参二.body传参三.两者区别说明 一.params传参 params传参一般用于get请求 params传参时,参数会附于URL后面以问号形式展示。 示例: http://ip地址:端口号/login?usernamexm&pwd111二.body传参 body传参一般用于post请求 body传参时需…

2022真题-架构师案例(二)

1、某大型电商平台建立了一个在线B2B商店系统,并在全匡多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国…

搜维尔科技:Cyber​​glove通过其前所未有的柔性传感器技术,带来了多年的经验、专业知识和可靠性

Cyberglove 概述 新一代数据手套技术 MoCap 手套采用了原始 CyberGlove 产品 20 年经验所建立的技术,产生了改进的和新的特性、能力和设计,非常适合动作捕捉环境。 旧与新相遇, Cyberglove 通过其前所未有的柔性传感器技术,带来…

【深度学习】PyTorch框架(5):Transformer和多注意力机制

1、引言 在本文中,我们将探讨近两年来最具影响力的模型架构之一——Transformer模型。自从2017年Vaswani等人发表的论文《注意力是你所需要的全部》以来,Transformer架构在多个领域持续刷新着性能记录,尤其是在自然语言处理(NLP&…

【网络安全的神秘世界】 文件上传及验证绕过

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 这个漏洞对于初学者好挖,先找到文件上传的位置 文件上传是web网页中常见的功能之一,通常情况下恶意文…

Windows 11 系统对磁盘进行分区保姆级教程

Windows 11磁盘分区 磁盘分区是将硬盘驱动器划分为多个逻辑部分的过程,每个逻辑部分都可以独立使用和管理。在Windows 11操作系统中进行磁盘分区主要有以下几个作用和意义: 组织和管理数据:分区可以帮助用户更好地组织他们的数据&#xff0c…

怎么使用动态IP地址上网

如何设置动态IP地址上网? 设置动态IP地址上网的步骤如下: 一、了解动态IP地址 动态IP地址是由网络服务提供商(ISP)动态分配给用户的IP地址,它会根据用户的需求和网络情况实时改变。相比于静态IP地址,动态…

闲鱼、抖音、快手纷纷入局,“谷子”经济千亿市场纷争再起

二次元的狂热,终于还是蔓延到了三次元。 此前,在咸鱼上的一场拍卖中,一块直径75mm,重达20克的“吧唧”(徽章),以7.2万人民币的价格被成功拍下。而与此同时,上海黄金交易所中的金价是…

Three.js 官方文档学习笔记

Address:Three.js中文网 (webgl3d.cn) Author:方越 50041588 Date:2024-07-19 第一个3D案例—创建3D场景 创建3D场景对象Scene: const scene new THREE.Scene(); 创建一个长方体几何对象Geometry: const geomet…

【C++】:AVL树的深度解析及其实现

目录 前言一,AVL树的概念二,AVL树节点的定义三,AVL树的插入3.1 第一步3.2 第二步 四,AVL树的旋转4.1 右单旋4.2 左单旋4.3 右左双旋4.4 左右双旋4.5 插入代码的完整实现4.6 旋转总结 五,AVL树的验证六,实现…

详细讲解vue3 watch回调的触发时机

目录 Vue 3 watch 基本用法 副作用刷新时机 flush 选项 flush: pre flush: post flush: sync Vue 3 watch 基本用法 计算属性允许我们声明性地计算衍生值。然而在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM,或是…

数字图像处理笔记(一)---- 图像数字化与显示

系列文章目录 数字图像处理学习笔记(一)---- 图像数字化与显示 数字图像处理笔记(二)---- 像素加图像统计特征 数字图像处理笔记(三) ---- 傅里叶变换的基本原理 文章目录 系列文章目录前言一、数字图像处理二、图像数…