1. 程式人生 > >Redis 之 主從復制與切換

Redis 之 主從復制與切換

eof oss erro 守護 方法 作用 err 數據 code

一、Redis 主從復制作用

作用:保證Redis的數據安全,提升應用服務高可用

二、網絡環境

技術分享圖片

三、在從服務器設置同步

1、查看從Redis 服務器上現有的數據

[root@web01 redis]# ./redis-cli 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

2、查看主Redis 服務器上現有的數據

[root@web02 redis]# ./redis-cli 
127.0.0.1:6379> keys *
 1) "5"
 2) "12"
 3) "3"
 4) "2"
 5) "7"
 6) "9"
 7) "1"
 8) "4"
 9) "10"
10) "6"
11) "8"
127.0.0.1:6379> 

3、此時我們在從庫中配置與主庫同步

[root@web01 redis]# service redis stop
Stopping ...
Redis stopped
[root@web01 redis]# vi redis.conf 

技術分享圖片

4、啟動從庫,並查看是否把主庫的信息同步過來

[root@web01 redis]# service redis start
Starting Redis server...
[root@web01 redis]# ./redis-cli 
127.0.0.1:6379> keys *
 1) "5"
 2) "4"
 3) "10"
 4) "7"
 5) "3"
 6) "8"
 7) "9"
 8) "6"
 9) "1"
10) "12"
11) "2"
127.0.0.1:6379> 

5、在主庫上添加一個新key,並同時查看從庫是否同步成功。

二、如何把從庫設置為主庫

1、當主庫發生故障時,我們需要把從庫設置為主庫,否則無法改或添加新的KEY

127.0.0.1:6379> set 14 aaaaaa
(error) READONLY You can‘t write against a read only slave.

2、把從庫設置為主庫

127.0.0.1:6379> set 14 aaaaaa          #當還是從庫的時候,只能進行讀,不能寫
(error) READONLY You can‘t write against a read only slave.       #提示錯誤
127.0.0.1:6379> slaveof NO ONE      #當主庫故障時,可在從庫運行以下命令,進行權限提升為主庫
OK
127.0.0.1:6379> set test aa
OK
127.0.0.1:6379> 

備註:提升為主庫後,記得要把從庫的配置文件slaveof 禁用註釋

三、關於Redis的高可用自動切換思路

個人方案:使用Keepalived + Redis 主從配置的方法,使用Keepalived持載虛擬IP到主庫上,同時添加Redis的守護進程,判斷主庫的Redis是否工作正常,如不正常,把Keepalived停止,同時漂移VIP到從庫上,在從庫的上的操作就是,添加一個守護進程,檢查VIP是否在本機,如在本機,把從庫提升為主庫,或此步驟可手工操作,通過ZABBIX監控,發生故障時,手工立刻把從庫提升為主庫。

Redis 之 主從復制與切換