Redis主从复制结构模式,哨兵模式

设置临时生效

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

.....................

猜你喜欢

转载自blog.51cto.com/13124606/2148533