1. 概念
指将一台Redis服务器的数据,复制到其它的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。
2. 配置步骤
1、在/etc/redis下面,将6379.conf拷贝两份,分别称为6380.conf与6381.conf
2、修改配置文件6380.conf与6381.conf中的内容
redis默认端口是 6379,复制多份占用别的端口。
/etc/redis/6380.conf
修改内容: port、pidfile、logfile、dbfilename、appendfilename
port 6380
pidfile "/var/run/redis_6380.pid"
logfile "/var/log/redis_6380.log"
dbfilename "dump6380.rdb"
appendfilename "appendonly6380.aof"
/etc/redis/6381.conf
修改内容: port、pidfile、logfile、dbfilename、appendfilename
port 6381
pidfile "/var/run/redis_6381.pid"
logfile "/var/log/redis_6381.log"
dbfilename "dump_6381.rdb"
appendfilename "appendonly_6381.aof"
3. 启动多个配置文件
sudo redis-server /etc/redis/6379.conf
sudo redis-server /etc/redis/6380.conf
sudo redis-server /etc/redis/6381.conf
启动后通过 ps -elf | grep redis
查看。
[root@arch ~]# ps -elf | grep redis
5 S root 827 1 0 80 0 - 14616 do_epo 15:25 ? 00:00:16 redis-server 127.0.0.1:6379
5 S root 1878 1 0 80 0 - 14616 do_epo 19:58 ? 00:00:00 redis-server 127.0.0.1:6380
5 S root 1886 1 0 80 0 - 14616 do_epo 19:58 ? 00:00:00 redis-server 127.0.0.1:6381
0 S root 1892 1673 0 80 0 - 2417 pipe_r 19:58 pts/0 00:00:00 grep --color redis
开启多个终端,进入各自对应的客户端。
redis-cli -p 6379
redis-cli -p 6380
redis-cli -p 6381
使用 info replication
查看主从信息。
4. 设置主从
默认情况,机器都是自认为自己是主机的状态。
# 6379 同 6380、 6381
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:0
master_replid:3c4a35f44d9d0043f21b93c44a4e2a7b3e0618f3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
127.0.0.1:6379>
slaveof
令 6380 作为6379的从机。在6380上执行 slaveof 6379_ip 6379_port
,也可以使用 slaveof no one
不作为任何机器的从机。
性质:
-
从机不允许写操作。
-
从机挂了,主机立马感知到。从机再次上线,初始状态为自认为主机。
-
默认主机挂了,从机等待主机上线。
5. 哨兵模式
如果主机挂了,应让其他的从机之间再次选举出新的主机。通过设置哨兵监视主机。
当主机挂掉之后,会执行流言协议(造谣)与投票协议(少数服从多数)
配置步骤
1、在/etc/redis下面创建,sentinel.conf,然后给文件添加如下命令
#sentinel monitor {masterName} {masterIp} {masterPort} {quorum}
#sentinel monitor 主节点名称 主节点Ip 主节点端口 投票数
sentinel monitor master6379 127.0.0.1 6379 1
2、启动哨兵模式(将哨兵对应的配置文件启动)
sudo redis-sentinel /etc/redis/sentinel.conf
3、当主机6379挂掉之后,哨兵会执行流言协议与投票协议,将票数投递给6380或者6381,最后6380或者6381谁得到了票数多,谁就是新的主机。
总结:
传统的主从复制,主机挂掉之后,从机 会等待主机上线,如果主机一直不上线,那么传统主从复制就不能写操作,表明是有问题的。现在哨兵模式,可以解决主机挂掉之后,从机不能推选新主机的现象,也就是可以解决不能写的现象。
标签:主从复制,主机,redis,6379,6381,6380,conf From: https://www.cnblogs.com/zxinlog/p/17594491.html