centos7搭建redis主從復制,並模擬故障切換。


 Cntos7搭建redis主從復制,並模擬故障主從切換

主從復制搭建

主機:192.168.161.179

從機:192.168.161.180

1、        安裝主redis

自己本地環境,關閉防火牆。

 #sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

#setenforce 0

    #systemctl stop firewalld   

#systemctl disable firewalld

           安裝相關依賴

           yum install –y gcc gcc-c++ make

下載redis4.0.2包

http://download.redis.io/releases/redis-4.0.2.tar.gz

下載好后上傳至服務器,進行解壓(我上傳至opt目錄)

解壓后編譯安裝

cd redis-4.0.2/

make PREFIX=/usr/local/redis install

將redis-4.0.2目錄的redis.conf sentinel.conf配置文件復制到安裝目錄/usr/local/redis

將redis-4.0.2/src目錄的redis-cli redis-sentinel redis-server復制到安裝目錄 /usr/local/redis/

修改配置

Cd /usr/local/redis

Vim redis.conf

修改內容如下:

  將bind 127.0.0.1這一行注釋掉

  將protected-mode yes改為protected-mode no

  將daemonize no改為daemonize yes

 將logfile ""改為logfile"/usr/local/redis/log/redis.log"

添加密碼

 

 

Vim sentinel.conf

將sentinel monitor mymaster 127.0.0.1 6379 2改為sentinel monitor mymaster 192.168.161.179 6379 2

添加一下幾行

daemonize yes

protected-mode no

logfile "/usr/local/redis/log/sentinel.log"

2、配置redis從

安裝的方法及路徑與redis1主一樣

復制redis配置文件

cp redis.conf sentinel.conf /usr/local/redis/

cp redis-cli redis-sentinel redis-server /usr/local/redis/

cd /usr/local/redis/

vim redis.conf

修改內容如下:

將bind 127.0.0.1注釋掉

將protected-mode yes改為protected-mode no

將daemonize no改為daemonize yes

將logfile ""改為logfile " /usr/local/redis/log/redis.log "

添加一行slaveof   192.168.161.179        6379   (主服務器ip)

配置密碼

修改sentinel.conf

修改內容如下:

192.168.161,179是主服務器ip,這里是寫主服務器的ip。

sentinel monitor mymaster 192.168.161.179 6379 2

daemonize yes

protected-mode no

logfile "/usr/local/redis/log/sentinel.log"

3、啟動主機

啟動主redis

./redis-cli -p 6379 -a 123456

啟動從redis    

./redis-cli -p 6379 -a 1234567

4、測試是否可以主從復制

主機上設置一個鍵值對

#set a 1

在從主機測試是否同步

#get a

從主機測試

#set b 2  (報錯因為從機是只讀,OK主從已經搭建ok)

日常的啟動關閉主從的命令如下。

主從復制搭建成功。

 

模擬故障切換,將slave切換為主

5、測試主從切換,當主(master)出現故障時將從(slave)切換成主。

模擬主掛了,關閉主

Ps –ef | grep redis

./redis-cli -p 6379 -a 123456 shutdown

在從設備上關閉復制功能,並將從服務器變為主服務器,原來所得的數據集不會被丟棄。

./redis-cli -p 6379 -a 1234567 slaveof NO ONE

 

登陸:./redis-cli -p 6379 -a 1234567

查看是否變為主:info

從已經變回master,也可以寫入數據

出現故障時將slave(從)切換為主ok。

6、測試原來的主redis恢復正常了,恢復回去。

先將現在的主redis數據進行保存

在將現在主redis根目錄下的dump.rdb,文件拷貝到原來主redis的根目錄,進行數據覆蓋。

(我是遠程拷貝過去的)

scp -P 22 dump.rdb root@192.168.161.179:/usr/local/redis/

啟動原來的主。

在現在這個主在執行最后一步操作,就是將原來的主恢復,將現在這個主還是切換為從。

./redis-cli -p 6379 -a 1234567 slaveof 192.168. 161.179 6379

指定主服務器。

 

我們可以看看是否恢復原來的主,登陸原來的主查看。

登陸redis成功輸入:info

已經恢復到原始環境。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM