Redis主从复制

主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主,主从复制节点间数据是全量的。

作用:

  • 读写分离,性能扩展

  • 容灾快速恢复

上图将主服务器复制了3份从服务器,主服务器进行写操作,从服务器进行读操作,读写分离,减少压力

复制原理

  • Slave 启动成功连接到 master 后会发送一个 sync 命令;

  • Master 接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master 将传送整个数据文件到 slave,以完成一次完全同步。

  • 全量复制:slave 服务器在接收到数据库文件数据后,将其存盘并加载到内存中。

  • 增量复制:Master 继续将新的所有收集到的修改命令依次传给 slave,完成同步。

  • 但是只要是重新连接 master,一次完全同步(全量复制) 将被自动执行。

模拟复制操作

①首先我们创建1个文件夹叫myredis

mkdir myredis

②复制redis.conf到myredis中

cp /opt/redis-6.2.10/redis.conf myredis/redis.conf

③由于我们是一台服务器,所以模拟的话,需要配置3份redis.conf,启动3个端口,分别配置redis6379.confredis6380.confredis6381.conf

redis6379.conf

使用命令vi redis6379.conf写入以下内容

include /myredis/redis.conf
pidfile /var/run/redis6379.pid
port 6379
dbfilename dump6379.rdb
masterauth 你的redis密码(如果你有设置的话,没有设置密码这行不用加)

然后redis6380.confredis6381.conf跟上面一样操作,只是端口号改成对应的即可。

④启动3台redis服务

redis-server redis6379.conf
redis-server redis6380.conf
redis-server redis6381.conf

使用ps -ef | grep redis查看结果

但目前3个没有主从区分,可以使用info replication查看是否是主从关系

我们先连接6379这台服务

redis-cli -p 6379

然后使用info replication,结果如下:

role:master就代表这台服务是主机,connected_salves:0代表主机下面的从机数量为0台

⑤将6380和6381这两台服务改成6379的从机

我们连接6380服务器,执行以下命令

slaveof 127.0.0.1 6379

这句话代表将此服务器变成6379的从服务器,当然ip地址填写你实际的,这里因为是本机所以填写127.0.0.1。6381服务器也做这个操作,这里就不重复写了

然后来到6379这台主机,执行info replication查看信息

可以看到从服务器的数量变成了2,具体的从服务器的ip和端口也显示出来了。

⑥测试主服务器写,从服务器读

我们在6379主服务器写入1个key

在6380和6381中查看

此时我们就完成了主从复制

redis(14)主从复制的更多相关文章

  1. 实现Redis的主从复制配置

    实现Redis的主从复制配置比较简单,而且容易明白. 下图是要配置的主从复制结构图: 1.说明 Redis主从复制中一个主服务可以有多个从服务,一个从服务可以有多个从服务. 配置比较简单,只需要更改r ...

  2. redis实现主从复制-单机测试

    一.redis实现主从复制-单机测试1.安装redis tar -zxvf redis-2.8.4.tar.gzcd redis-2.8.4make && make install2. ...

  3. Redis配置主从复制

    Redis配置主从复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.操作环境介绍 1>.操作系统环境 [root@node101.yinzhengjie.org.cn ...

  4. redis的主从复制配置

    redis的主从复制配置 一.     原理 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架 ...

  5. Redis总结(三)Redis 的主从复制

    接着上一篇,前面两篇我总结了<Redis总结(一)Redis安装>和<Redis总结(二)C#中如何使用redis> 所以这一篇,会讲讲Redis 的主从复制以及C#中如何调用 ...

  6. redis的主从复制部署和使用

    reids一种key-value的缓存数据库目前非常流行的被使用在很多场景,比如在数据库读写遇到瓶颈时缓存且读写分离会大大提升这块的性能,下面我就说说redis的主从复制 首先需要启动多个redis实 ...

  7. 8. redis的主从复制和sentinal

    一. redis主从复制(读写分离) redis的主从复制分为两类节点:1个master和多个slave,master进行读写操作,slav进行只读操作 启动步骤: 主节点照常启动,slave节点启动 ...

  8. Redis基础学习(五)—Redis的主从复制

    一.概述     Redis的主从复制策略是通过其持久化的rdb文件来实现的,其过程是先dump出rdb文件,将rdb文件全量传输给slave,然后再将dump后的操作实时同步到slave中.让从服务 ...

  9. Redis的主从复制(十一)

    1>什么是主从复制 持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后(在使用aof和rdb方式时,如果redis重启,则数据从aof文件加载)会将硬盘上持久化的数据恢复 ...

  10. 基于配置文件的redis的主从复制

    redis中主从复制有很多种配置方法: 1. 使用配置文件即为redis.conf来配置 在随从redis中配置 # slaveof {masterHost} {MastePort} slaveof ...

随机推荐

  1. Dart开发服务端,我是不是发烧(骚)了?

    前言 最近一段时间,我和我的团队开发了两个 APP. 客户端方面采用了 Flutter,方便跨平台. 服务端方面剑走偏锋,没有采用 php, pythod, java之类的,而是采用了与 Flutte ...

  2. [百度营]AI studio用法提醒(自用)

    持久化安装 需要设置持久化路径: !mkdir /home/aistudio/external-libraries !pip install beautifulsoup4 -t /home/aistu ...

  3. PHP 实现大文件视频推流

    /** * 视频推流 * 返回视频流 */ function bofang(){ set_time_limit(0); ini_set('max_execution_time', 0);//秒为单位, ...

  4. 【机器学习】李宏毅——自注意力机制(Self-attention)

    前面我们所讲的模型,输入都是一个向量,但有没有可能在某些场景中输入是多个向量,即一个向量集合,并且这些向量的数目并不是固定的呢? 这一类的场景包括文字识别.语音识别.图网络等等. 那么先来考虑输出的类 ...

  5. 在nodejs中体验http/2

    前言 2015年,HTTP/2 发布,直到2021年公司的项目才开始在实践中应用:自己对http2诸多特点的理解只存在于字面上,于是尝试在nodejs中实践一下,加深自己的理解. 多路复用 同域名下所 ...

  6. 2020强网杯青少赛Pursuing_The_Wind战队WRITEUP

    在线文档:https://docs.qq.com/doc/DZkN0RFFaR1ZDdHhD    旧事拾荒,偶遇该文档,既发. 战队信息 战队名称:Pursuing_The_Wind 战队排名:12 ...

  7. Git Rebase和Merge的用法

    title: Git Rebase和Merge的用法 categories: 后端 tags: - Git Rebase和Merge是什么? merge和rebase的作用都是合并两个分支,其区别在于 ...

  8. continue跳過循環(skippaart程序),接受設定的合法分數來進行平均分求值,并展現最高分,最低分

    1 #include<stdio.h> 2 int main() 3 { 4 const float MIN = 0.0f; //分數下限是0分 5 const float MAX = 1 ...

  9. Java基础学习笔记-类的静态属性和静态方法--待继续补充

    程序运行时的内存占用 代码区(code area) 存放代码 数据区(data area) 存放全局数据.静态数据 堆区(heap area) 存放动态申请的数据 栈区(stack area) 存放局 ...

  10. vue+div.canvas图像标注功能实现

    main.js import Vue from 'vue' import 'vueui-widgets/dist/index.css' import VueUI from 'vueui-widgets ...