设置临时生效
1.配置从库
192.168.4.58:6058> info replication // 查看主从配置信息
# Replication
role:master
connected_slaves:0
master_replid:784d7d32d7f522703ca763c6a1a4bb0f8c1db591
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
命令行指定主库:SLAVEOF 主库 IP 地址 端口号
2.一主一从
192.168.4.57:6057> SLAVEOF 192.168.4.50 6050 #把57配置成50的从库
OK
192.168.4.57:6057> INFO replication
# Replication
role:slave
master_host:192.168.4.50
master_port:6050
master_link_status:up
master_last_io_seconds_ago:8
master_sync_in_progress:0
slave_repl_offset:56
客户端测试
[root@51 ~]# redis-cli -c -h 192.168.4.50 -p 6050
192.168.4.50:6050> set name bob
OK
Master:
192.168.4.50:6050> keys *
1)"name"
2)192.168.4.57:6057> keys *
3)1) "name"
3.一主多从(在上面的基础上增加58)
192.168.4.58:6058> SLAVEOF 192.168.4.50 6050
OK
192.168.4.58:6058> info replication
# Replication
role:slave
master_host:192.168.4.50
...............
192.168.4.58:6058> keys *
1) "age"
2) "name"
4.主从从(把58配置成为57的从库)
刚刚我们把58设置成为50的从库,需要从启58的redis
[root@58 ~]# redis-cli -h 192.168.4.58 -p 6058 shutdown
[root@58 ~]# redis_6379 start
[root@58 ~]# redis-cli -h 192.168.4.58 -p 6058
192.168.4.58:6058> info replication
# Replication
role:master
connected_slaves:0
............
192.168.4.58:6058> SLAVEOF 192.168.4.57 6057
OK
192.168.4.58:6058> info replication
# Replication
role:slave
master_host:192.168.4.57
master_port:6057
测试:
192.168.4.50(主库从库57)
192.168.4.50:6050> keys *
1) "age"
2) "name"
192.168.4.50:6050> set sex gral
OK
192.168.4.57(是50的从库58的主库)
192.168.4.57:6057> keys *
1) "sex"
2) "name"
3) "age"
192.168.4.58(57的从库)
192.168.4.58:6058> keys *
1) "age"
2) "name"
3) "sex"
反客为主 – 主库宕机后,手动将从库设置为主库
192.168.4.50宕机后,手动将57设置为主库
192.168.4.57:6057> SLAVEOF no one // 设置为主库
OK
以上设置都是临时生效,重启无效
配置永久主从同步且带认证(同步认证需要输入主库密码)
1.设置密码
[root@50 ~]# vim /etc/redis/6379.conf
501 requirepass 123456
8 REDISPORT="6050"
43 $CLIEXEC -h 192.168.4.50 -p $REDISPORT -a 123546 shutdown
2.从库设置
[root@57 redis]# vim /etc/redis/6379.conf
282 slaveof 192.168.4.50 6050
289 masterauth 123456
[root@57 redis]# redis-cli -h 192.168.4.57 -p 6057
192.168.4.57:6057> INFO replication
# Replication
role:slave
master_host:192.168.4.50
master_port:6050
master_link_status:up
...................................
配置主从从(给57配置个从库永久配置)
[root@58 ~]# redis-cli -h 192.168.4.58 -p 6058 shutdown
[root@58 ~]# vim /etc/redis/6379.conf
282 slaveof 192.168.4.57 6057
[root@58 ~]# redis_6379 start
[root@58 ~]# redis-cli -h 192.168.4.58 -p 6058
192.168.4.58:6058> info replication
# Replication
role:slave
master_host:192.168.4.57
master_port:6057
master_link_status:up
.............
哨兵模式
-当主库坏宕机后从库自动升级为主库
– 在 slave 主机编辑 sentinel.conf 文件
– 在 slave 主机运行哨兵程序
1.在重库下面编写配置文件
格式:sentinel monitor 主机名 ip 地址 端口 票数
主机名:自定义
IP 地址: master 主机的 IP 地址
端 口: master 主机 redis 服务使用的端口
票 数:主库宕机后, 票数大于 1 的主机被升级为主库
生产环境一般不设置连接密码
50宕机前(把51的密码取消)
[root@50 ~]# vim /etc/redis/6379.conf
#requirepass 123456
设置后重启redis
把57连接50密码取消
[root@57 ~]# vim /etc/redis/6379.conf
289 #masterauth 123456
设置后重启redis
[root@57 redis]# vim /etc/sentinel.conf
sentinel monitor 50 192.168.4.50 6050 1
Sentinel auth-pass 50 123456 如果主库存在秘密,需输入,
[root@57 redis]# redis-sentinel /etc/sentinel.conf
[root@57 ~]# redis-cli -h 192.168.4.57 -p 6057
192.168.4.57:6057> info replication
# Replication
role:slave
master_host:192.168.4.50
master_port:6050
50宕机后查看
192.168.4.57:6057> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.4.58,port=6058,state=online,offset=10763,lag=1
.....................