Redis_主从复制

一、主从复制介绍

主机数据更新后根据配置和策略,自动同步到备机的master/slave 机制,Master以写为主,slave以读为主

好处:读写分离,性能扩展;容灾快速恢复(一主多从):一台slave从机挂掉,马上切换到另一台slave从机提供服务。

主机挂:集群

集群:一主多从 ——关联—— 一主多从

复制原理:

1、当从服务器连接上主服务器后,从服务器向主服务器发送进行数据同步消息

2、主服务器接到从服务器发送过来的同步消息,把主服务器数据进行持久化rdb文件,把rdb文件发送从服务器,从服务器拿到rdb进行读取

3、每次主服务器进行写操作之后,和从服务器进行数据同步。

二、主从复制配置

1、创建/myredis文件夹

2、复制redis配置文件到文件夹中

3、配置一主两从,创建三个配置文件。新建redis6379.conf、redis6380.conf、redis6381.conf三个配置文件文件

4、填写以下(数字替换)内容

include /myredis/redis.conf

pidfile /var/run/redis_6379.pid

port 6379

dbfilename dump6379.rdb

5、启动三台redis服务  redis-server redis6379.conf

6、查看当前主机运行状况

infor replication打印主从复制相关信息

redis-cli -p 6379

infor replication

7、配从库不配主库

slaveof ip port:成为某个实例的从服务器

在6380和6381上执行slaveof 127.0.0.1 6379

 

三、一主二仆

当从服务器挂了,从服务器重启之后是master,要重新设置slaveof,加入主从后会将主数据库的数据从头开始复制到从库中。

当主服务器挂了,从服务器仍然是从服务器,

 

四、薪火相传

从服务器可以挂从服务器。

中途变更转向:会清除之前的数据,重新建立拷贝最新的

风险是一旦某个slave宕机,后面的slave都没办法备份

主机挂了,从机还是从机,无法写数据了

 

五、反客为主

当一个master宕机后,后面的slave立刻升为master,后面的slave不用做任何修改

slaveof no one  将从机变为主机

【手动更改】

 

六、哨兵模式

反客为主的自动版,能够后台监控主机是否发生故障,如果故障了根据投票数自动将从库转为主库

还原三个服务器一仆二主

在/myredis目录下新建sentinel.conf文件,名字绝对不能错

sentinel monitor mymaster 127.0.0.1 6379 1 

其中mymaster为监控对象起的服务器名称,1为至少有多少个哨兵同意迁移的数量

选举规则:选择优先级靠前的:优先级在redis.conf中默认:slave-priority 100,值越小优先级越高

     选择偏移量最大的:偏移量是指获得原主机数据最全的

        选择runid最小的从服务:每个redis实例启动后都会随机生成一个40位的runid

启动哨兵:redis-sentinel sentinel.conf

旧主机恢复后成为新主库的从库。

 

七、复制延时

由于所有的写操作都是先在Master上操作,然后同步更新到slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙时,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

posted @ 2023-06-04 20:48  佛系粥米  阅读(21)  评论(0编辑  收藏  举报