redis主从复制

一主两从搭建

1.随意建一个文件夹,比如在根目录下建Myredis,然后将/etc/redis/redis.conf拷贝到这个文件夹下

2.建3个conf空文件,例如三个配置文件名字为redis6379.conf redis6380.conf redis6381.conf

3.在三个文件中引入公共配置,以及其他配置

include /myredis/redis.conf #这里引入redis.conf的公共部分
pidfile /var/run/redis_6380.pid #pid也不一样
port 6380 #端口三个配置文件不能一样
dbfilename dump6380.rdb #rdb文件名称也不一样
masterauth zhang #主服务redis密码,主不用加这句话,从服务器需要加

4.分别启动三台redis redis-server redis6379.conf

5.分别进入三台redis的客户端redis-cli -p 6379

6.在从服务器redis中执行 slaveof 主机IP 主服务端口 例如: slaveof 127.0.0.1 6379

7.可通过info replication查看目前主服务与从服务分别是什么状态

8.完成主从复制之后,主服务可写可读,从服务只能读不能写

复制原理:

1、当从连接上主服务之后,从服务向主服务发送进行数据同步消息
2、主服务接到从服务发送过来同步消息,把主服务数据进行持久化为rdb文件,
把rdb文件发送从服务,从服务拿到rdb进行读取
3、每次主服务进行写操作之后,和从服务进行数据同步(主服务器主动发起)

主机挂掉怎么办?

可以通过手动方式让从机变成主机,但是这样不够灵活,如果能够实时监控主机变化,
在其宕机时,自动将从机晋升为主机,那样就十分完美了。

posted @ 2023-07-10 18:13  三之日up  阅读(23)  评论(0)    收藏  举报