1. 程式人生 > >Redis主從復制結構模式,哨兵模式

Redis主從復制結構模式,哨兵模式

需要 -a connect pro ast roo 8.4 offset edi

設置臨時生效

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

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

Redis主從復制結構模式,哨兵模式