新聞中心
Redis測(cè)試:主從切換實(shí)踐

Redis是一款快速、高效、可靠的內(nèi)存緩存數(shù)據(jù)庫(kù)。在實(shí)際應(yīng)用過(guò)程中,為了保證高可用性和數(shù)據(jù)安全,常常采用Redis主從復(fù)制的方式來(lái)備份數(shù)據(jù)和實(shí)現(xiàn)讀寫分離。而主從切換是保證Redis集群高可用性的重要手段。
本文將介紹Redis主從切換的實(shí)踐過(guò)程,并附上相應(yīng)的代碼實(shí)現(xiàn)。
一、測(cè)試環(huán)境
本次測(cè)試使用的硬件和軟件環(huán)境如下:
1.硬件環(huán)境
CPU:Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
內(nèi)存:16GB
硬盤:512GB SSD
2.軟件環(huán)境
操作系統(tǒng):CentOS Linux release 7.6.1810
Redis版本:v5.0.5
方案:一主一從
二、主從切換的實(shí)現(xiàn)
本次測(cè)試采用一主一從的方案,主從數(shù)據(jù)庫(kù)的搭建和配置可以參考本人另一篇文章《Redis測(cè)試:搭建主從集群》。
主從切換的實(shí)現(xiàn)分為兩種情況:主節(jié)點(diǎn)故障和手動(dòng)切換。
1.主節(jié)點(diǎn)故障
為了模擬主節(jié)點(diǎn)故障,我們把Redis的主節(jié)點(diǎn)進(jìn)程kill掉。這時(shí)從節(jié)點(diǎn)需要自動(dòng)接管服務(wù)。
實(shí)現(xiàn)代碼如下:
ps -ef | grep redis-server | grep 6379 | awk '{print $2}' | xargs kill -9
從節(jié)點(diǎn)的日志中可以看到以下信息:
10229:S 07 Dec 2021 16:31:27.616 # Flover not yet performed.
10229:S 07 Dec 2021 16:32:27.616 # Detecting if redis_master is reachable via replication...
10229:S 07 Dec 2021 16:32:27.616 # Redis master seems down! Wting for checking min-slaves-to-write value (2)
10229:S 07 Dec 2021 16:32:27.616 # +flover-state-wt-promotion redis-master 0
10229:S 07 Dec 2021 16:32:27.616 # +flover-state-select-slave redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.616 * +slave-reconf-sent redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.616 * +slave-reconf-inprog redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.621 * +slave-reconf-done redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.621 * +flover-state-send-slaveof-noone redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.621 * +flover-state-wt-promotion redis-slave 0
10229:S 07 Dec 2021 16:32:27.821 * +flover-state-reconf-slaves redis-slave 0
10229:S 07 Dec 2021 16:32:27.821 * +flover-end redis-slave 0
10229:S 07 Dec 2021 16:32:27.824 # New suspected master redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.824 # +flover-state-send-slaveof-noone redis-slave 127.0.0.1:6380
10229:S 07 Dec 2021 16:32:27.824 # +flover-state-wt-promotion redis-slave 1
10229:S 07 Dec 2021 16:32:28.170 # +flover-state-reconf-slaves redis-slave 1
10229:S 07 Dec 2021 16:32:28.170 # +flover-end redis-slave 1
10229:S 07 Dec 2021 16:32:28.170 * Promotion completed successfully
從日志中可以看到Redis從節(jié)點(diǎn)成功接管了服務(wù),成為了新的主節(jié)點(diǎn)。
2.手動(dòng)切換
在某些情況下,我們需要手動(dòng)切換主節(jié)點(diǎn)。例如,當(dāng)主節(jié)點(diǎn)出現(xiàn)問(wèn)題而且從節(jié)點(diǎn)不能自動(dòng)接管服務(wù)時(shí),我們需要手動(dòng)把從節(jié)點(diǎn)切換為主節(jié)點(diǎn)。
實(shí)現(xiàn)代碼如下:
redis-cli -p 6380 SLAVEOF NO ONE
redis-cli -p 6381 SLAVEOF 127.0.0.1 6379
手動(dòng)切換后,從節(jié)點(diǎn)會(huì)成為新的主節(jié)點(diǎn),并且舊的主節(jié)點(diǎn)成為新的從節(jié)點(diǎn)。
三、總結(jié)
本文介紹了Redis主從切換的實(shí)踐過(guò)程,并給出了相應(yīng)的代碼實(shí)現(xiàn)。在實(shí)際應(yīng)用中,為了保證Redis集群的高可用性和數(shù)據(jù)安全,建議采用Redis主從復(fù)制的方式進(jìn)行備份和讀寫分離,并定期進(jìn)行主從切換測(cè)試,以保證Redis集群的可靠性和穩(wěn)定性。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792
網(wǎng)頁(yè)名稱:Redis測(cè)試主從切換實(shí)踐(redis測(cè)試主從切換)
新聞來(lái)源:http://fisionsoft.com.cn/article/djepois.html


咨詢
建站咨詢
