Redis主从复制可以一个reids服务宕机,导致应用宕机的情况。同时可以构建读写分离架构,满足业务量大并发高的使用场景。
Redis主从架构拓扑图结构
主从架构的搭建
构建redis集群只需要启动多个实例即可,每个实例对应一个配置文件。这里我用到的端口分别是6379(master)、6380(slave)、6381(slave),直接把6379的配文件,复制为对应端口号命名的文件
[root@localhost etc]# cp 6379.conf 6380.conf
[root@localhost etc]# cp 6379.conf 6381.conf
修改6379的配置文件
requirepass 123456 //设置访问密码
分别修改6380、6381的配置文件
port 6380 //修改为对应的端口号
daemonize yes //允许守护进程启动
pidfile /var/run/redis_6380.pid //修改为对应的端口号
slaveof 127.0.0.1 6379 //复制功能,将作为6379的从服务器
masterauth 123456 //主服务器认证,填入主服务器的访问密码
requirepass 123456 //设置访问密码
启动redis实例
[root@localhost bin]# redis-server ../etc/6379.conf
2253:C 30 Jul 17:28:52.270 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2253:C 30 Jul 17:28:52.271 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2253, just started
2253:C 30 Jul 17:28:52.271 # Configuration loaded
[root@localhost bin]# redis-server ../etc/6380.conf
2263:C 30 Jul 17:29:00.401 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2263:C 30 Jul 17:29:00.401 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2263, just started
2263:C 30 Jul 17:29:00.401 # Configuration loaded
[root@localhost bin]# redis-server ../etc/6381.conf
2269:C 30 Jul 17:29:04.394 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2269:C 30 Jul 17:29:04.395 # Redis version=4.0.10, bits=64, commit=00000000, modified=0, pid=2269, just started
2269:C 30 Jul 17:29:04.395 # Configuration loaded
来验证一下主从复制功能
[root@localhost ~]# redis-cli -p 6379
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=21363,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=21363,lag=0
master_replid:b8a5fb5265ed3757945eb741ebcec54c93978a70
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:21363
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:21363
127.0.0.1:6379> set te