Redis的持久化方式:

Redis提供了两种数据持久化的方式:

  • RDB

    该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。

  • AOF

    该机制将以日志的形式记录服务器所处理的每一个写操作。

在Redis服务器启动之初会读取文件来重新构建数据库,以保证启动后数据库中的数据是完整的。

2. RDB

Redis Database:通过单文件的方式来持久化

RDB是默认的持久化方式,默认存储在启动redis服务器时所在当前目录下的dump.rdb文件中,一般都会修改存储在一个固定的目录中

编辑配置文件:

dbfilename dump.rdb         #持久化文件的名称
dir  ./                             #持久化文件的目录,默认为执行redis-server命令时所在的当前目录

持久化的时机:

  • 在数据库关闭时会持久化(需要注意的是在数据库宕机时不会生成,数据可能会丢失)

  • 满足特定条件时会持久化,编辑配置文件:

save 900 1      #在900秒内,只要有1个key发生变化,就会dump持久化
save 300 10
save 60 10000

优缺点:

  • 缺点:可能会丢失数据

  • 优点:效率比较高

3. AOF

Append Only File:通过操作日志的方式来持久化

编辑配置文件:

appendonly yes                      #开启aof模式的持久化
ppendfilename "appendonly.aof"  #aof的持久化文件
appendfsync everysec                #每一秒进行一次持久化操作,可取值:always、everysec、no
dir ./      #持久化文件的目录,与RDB相同

优缺点:

  • 缺点:效率比较差

  • 优点:丢失数据量比较少

Redis的架构模式有以下几种:

  1. 单机模式(Standalone)

    最简单的模式,不涉及数据同步,所以天然具备一致性。

    单机Redis能够承载的QPS(每秒查询速率)大概在几万左右。

    如果用户访问量太大,可能会导致redis直接挂掉。缺乏可靠性,单机有宕机的风险。

  2. 主从模式(Master-Slave)

    也称为主从复制,允许根据一个Redis服务器来创建任意多个该服务器的复制品。

    其中被复制的服务器为主服务器/节点(master),而通过复制创建出来的服务器复制品则为从服务器/节点(slave)。

    特点:

    • 主从结构:一个主节点可以有多个从节点,从节点可以有从节点,形成级联结构。

    • 数据同步:主节点上的数据更新后,会自动将更新的数据同步到从节点,并且这种同步是异步进行的。

    • 读写分离:主从模式可以实现读写分离,主节点主要负责写入操作,而从节点则主要负责读取操作。

    • 数据备份:从节点可以作为主节点的备份节点,保存主节点的数据备份,提高数据的安全性和可靠性。

  3. 哨兵模式(Sentinel)

    哨兵模式是在主从模式的基础上添加了故障检测和自动故障转移的功能。

    在哨兵模式下,哨兵进程会监视主从节点的运行状态,当主节点出现故障时,会自动将其中一个从节点提升为新的主节点,并通知其他从节点修改配置文件,以将数据复制修改为主节点。这样可以实现自动的故障转移,无需人工干预,提高系统可用性和可扩展性。

    哨兵模式不可以单独使用,它需要与主从模式一起使用。

  4. 集群模式(Cluster)

    集群模式是为了解决单机Redis容量有限的问题,将数据按一定的规则分配到多台机器上。

    在集群模式下,每个节点都负责存储数据的一部分,并且可以处理来自其他节点的请求。当一个节点出现故障时,其他节点可以接管它的职责,继续处理请求。

    集群模式可以提高并发处理能力和数据容量,但实现复杂度较高,需要处理数据分片和节点间的通信等问题。

2. 主从模式的配置

启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380

将配置文件拷贝两份,并修改端口号

步骤:

  1. 主服务器master

    将配置文件拷贝两份,并修改端口号

    $ redis-server 6379.conf
  2. 从服务器slave

    $ vi 6380.conf  # 编辑配置文件,配置主从关系slaveof 127.0.0.1 6379  # 在末尾添加,指定master的主机地址和端口号
    $ redis-server 6380.conf
    $ redis-cli -p 6380   # 连接从服务器,slave端口号为6380

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

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

相关文章

leedcode【203】. 移除链表元素——Java解法

Problem: 203. 移除链表元素 题目思路解题方法复杂度Code效果 题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val…

OS复习笔记ch6-1

死锁的原理 定义 一组进程中,其中每个进程因等待事件而阻塞,且所等待的事件只能被这组进程中的另一阻塞进程激发称之为死锁。 举例如下 四个车辆希望紧迫的希望能很快通过,每辆车需要两个象限的资源,然而四个车都只得到一个象…

golang调用aliyun的语音通话服务,复制直接使用

golang调用aliyun的语音通话服务 通过API使用语音通知/语音验证码——阿里云官方文档SingleCallByTts - 发送语音验证码或文本转语音类型的语音通知入门流程主要参数引入阿里云语音官方SDK-go版本完整代码通过API使用语音通知/语音验证码——阿里云官方文档 https://help.aliy…

电子电器架构 - AUTOSAR软件架构介绍

电子电器架构 - AUTOSAR软件架构介绍 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己…

MFC Winsock 类:MFC 中的网络编程

目录 概述 一.MFC Winsock 类简介 1.MFC Winsock 类的主要功能 2.MFC Winsock 类的主要优点 3.MFC Winsock 类的主要缺点 4.MFC Winsock 类的主要类 5.MFC Winsock 类示例 二.CAsyncSocket 类 1.主要功能 异步通信 事件驱动 数据传输 套接字选项 2.常用函数 创建…

Maven多环境打包配置

一、启动时指定环境配置文件 在启动springboot应用的jar包时,我们可以指定配置文件,通常把配置文件上传到linux服务器对应jar包的同级目录,或者统一的配置文件存放目录 java -jar your-app.jar --spring.config.location/opt/softs/applicat…

matlab 图像的中值滤波

目录 一、功能概述1、算法概述2、主要函数3、计算公式二、代码实现三、结果展示四、参考链接本文由CSDN点云侠翻译,放入付费专栏只为防不要脸的爬虫。专栏值钱的不是本文,切勿因本文而订阅。 一、功能概述 1、算法概述 中值滤波是图像处理中一种常用的非线性运算,用于减少…

间接平差——以水准网平差为例 (python详细过程版)

目录 一、原理概述二、案例分析三、代码实现四、结果展示本文由CSDN点云侠原创,间接平差——以水准网平差为例 (python详细过程版),爬虫自重。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、原理概述 间接平差的函数模型和随机模型…

openai api的初次尝试

不懂已经不去百度了,现在直接问chatgpt就解决绝大多数问题了。 OpenAI API目前还没有官方支持的npm库,但是您可以使用现有的第三方npm库进行OpenAI API的访问和使用。这里提供一个npm库 openai-node 的安装和使用方法: 在命令行或终端中使用…

Util和utils

Util FieldStats 这段代码定义了一个名为FieldStats的Java类,位于com.cqupt.software_1.Util包中。它使用了lombok库的Data和AllArgsConstructor注解,这些注解帮助生成了getter、setter、toString等方法,以及包含所有参数的构造函数。类中有…

区块链会议投稿资讯CCF A--USENIX Security 2025 截止9.4、1.22 附录用率

会议名称:34th USENIX Security Symposium CCF等级:CCF A类学术会议 类别:网络与信息安全 录用率:2023年接收率29%,2024录用的区块链相关文章请查看 Symposium Topics System security Operating systems security …

vue实现可拖拽移动悬浮球

封装悬浮球组件&#xff0c;文件名s-icons.vue <template><div ref"icons" class"icons-container" :style"{ left: left px, top: top px }"><slot></slot></div> </template> <script> export …

国产化服务器开启NTP功能并向NTP时钟服务器同步

1.备份/etc/chrony.conf文件&#xff1b; cp -rp /etc/chrony.conf /etc/chrony.conf.bak.20240522 2.修改chrony.conf文件&#xff0c;增加NTP时钟信息。&#xff08;客户端填写时钟同步服务器的IP地址或者域名&#xff0c;我这里写的IP地址。下面Allow NTP Client是只允许…

Mysql 的 binlog 有几种格式?

MySQL 的二进制日志&#xff08;binlog&#xff09;有三种格式&#xff0c;每种格式都有其特定的用途和优缺点。以下是详细描述&#xff1a; 1. STATEMENT 描述: 记录的是 SQL 语句。特点: 每条更改数据的 SQL 语句都会记录在 binlog 中。相对较小&#xff0c;因为只记录了 S…

数字图像处理冈塞雷斯第四版课后习题答案【英文原版】

第二章 第三章 . 第四章 傅里叶变换是一个线性过程&#xff0c;而计算梯度的平方根和平方根则是非线性运算。傅里叶变换可以用来计算微分的差值(如问题4.50)&#xff0c;但必须在空间域中直接计算平方和平方根值。 (a)实际上&#xff0c;由于高通操作&#xff0c;环有一个暗中心…

在已创建的git工程中添加.gitignore

有些代码创建git时&#xff0c;为了方便将所有文件都加入了git管理&#xff0c;但实际有些库的Makefile文件和编译目录的文件不需要加入管理&#xff0c;否则每次提交或编译后&#xff0c;git diff将看到非常多的冗余信息。而我们修改的核心代码都淹没在这些大量无用的信息里面…

Golang:gammazero/deque是一个快速环形缓冲区deque(双端队列)实现

gammazero/deque是一个快速环形缓冲区deque&#xff08;双端队列&#xff09;实现。 文档 https://github.com/gammazero/deque 安装 go get github.com/gammazero/deque代码示例 先入先出队列 package mainimport ("fmt""github.com/gammazero/deque&quo…

留守儿童|基于SprinBoot+vue的留守儿童爱心网站(源码+数据库+文档)

留守儿童爱心网站 目录 基于SprinBootvue的留守儿童爱心网站 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&…

STM_HAL_TIM_IC_(输入捕获,捕获PWM波)

介绍 TM32微控制器提供了输入捕获&#xff08;Input Capture&#xff09;功能&#xff0c;这是一种用于精确测量外部信号脉冲宽度和周期的强大技术。输入捕获通常与定时器&#xff08;如TIM&#xff09;的高级控制定时器&#xff08;TIM1和TIM8&#xff09;或通用定时器&#…

MySQL之Schema与数据类型优化和创建高性能的索引(一)

Schema与数据类型优化 只修改.frm文件 从前面的例子中可以看到修改表的.frm文件是很快的&#xff0c;但MySQL有时候会在没有必要的时候也重建.如果愿意冒一些风险&#xff0c;可以让MySQL做一些其他类型的修改而不用重建表。下面这些操作是有可能不需要重建表的: 1.移除(不是…