Redis server 主從復(fù)制配置實現(xiàn)
0. 前言
在Redis運維篇的第5.6章節(jié)中,將討論Redis服務(wù)器的主從復(fù)制配置。在開始之前,讓先來了解一下主從復(fù)制的概念和作用。
主從復(fù)制是指將一個Redis服務(wù)器的數(shù)據(jù)復(fù)制到其他Redis服務(wù)器的過程。在主從復(fù)制中,一個Redis服務(wù)器充當(dāng)主服務(wù)器,而其他Redis服務(wù)器則充當(dāng)從服務(wù)器。主服務(wù)器負責(zé)接收寫操作,并將這些寫操作傳播到所有從服務(wù)器。從服務(wù)器則負責(zé)接收主服務(wù)器傳播的寫操作,并將這些寫操作應(yīng)用到自己的數(shù)據(jù)集中。
主從復(fù)制的主要作用是提高系統(tǒng)的可用性和性能。通過將數(shù)據(jù)復(fù)制到多個服務(wù)器上,即使主服務(wù)器發(fā)生故障,從服務(wù)器仍然可以提供讀取服務(wù),從而保證系統(tǒng)的可用性。此外,主從復(fù)制還可以將讀操作分攤到多個服務(wù)器上,從而提高整個系統(tǒng)的讀取性能。
在接下來的內(nèi)容中,將詳細講解如何進行Redis服務(wù)器的主從復(fù)制配置和示例。
1. 配置方式
步驟1: 準(zhǔn)備硬件和網(wǎng)絡(luò)
確保你的主機和從機的硬件資源符合運行Redis的要求。主服務(wù)器和從服務(wù)器應(yīng)該通過可靠的網(wǎng)絡(luò)連接,確保兩者之間的通信穩(wěn)定且延遲較低。
這里我使用3臺虛擬機來搭建一下,主服務(wù)器的ip為192.168.10.1,兩個從服務(wù)器的ip分別為192.168.10.2和192.168.10.2,端口號都為6379,具體的配置如下
步驟2: 安裝Redis
根據(jù)你的操作系統(tǒng),從Redis官網(wǎng)下載安裝包或使用相應(yīng)的包管理器進行安裝。
對于基于RPM的系統(tǒng)(如CentOS):
sudo yum install redis
對于基于Debian的系統(tǒng)(如Ubuntu):
sudo apt-get update sudo apt-get install redis-server
對于macOS(使用Homebrew):
brew install redis
我的是Centos 7192.168.10.1192.168.10.2192.168.10.3分別安裝完redis 并開放防火墻6379端口號
有兩種方式,看你的操作系統(tǒng)的支持。
- 使用firewall
# 檢查當(dāng)前防火墻規(guī)則: sudo firewall-cmd --list-all # 如果沒有特定規(guī)則,可以使用以下命令開放端口 6379: sudo firewall-cmd --add-port=6379/tcp --permanent # 重新加載防火墻規(guī)則: sudo firewall-cmd --reload
- 或者使用iptables
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
分別修改三臺服務(wù)器的配置如下
daemonize yes # 綁定的主機地址,這里注釋掉,開放ip連接 #bind 127.0.0.1 logfile "redis.log" requirepass 123456
步驟3: 配置主服務(wù)器的Redis
編輯Redis配置文件(通常位于/etc/redis/redis.conf或/usr/local/etc/redis.conf),進行以下設(shè)置:
# 啟用AOF持久化模式,以保證數(shù)據(jù)安全 appendonly yes # 如果需要密碼認證,取消以下注釋并設(shè)置密碼 requirepass 123456
重啟Redis服務(wù)來應(yīng)用新的配置:
sudo service redis-server restart
或在系統(tǒng)中使用對應(yīng)的命令,如systemctl等。
步驟4: 配置從服務(wù)器的Redis
在從服務(wù)器上,同樣編輯Redis配置文件。添加以下設(shè)置:
# 指定主服務(wù)器的地址和端口 slaveof 192.168.10.1 6379 # 如果主服務(wù)器設(shè)置了密碼,配置從服務(wù)器的masterauth以匹配主服務(wù)器的密碼 masterauth 123456 # 設(shè)置從服務(wù)器為只讀模式 slave-read-only yes # 設(shè)置從服務(wù)器與主服務(wù)器斷開連接時的超時時間,單位為秒 repl-timeout 60 # 設(shè)置從服務(wù)器向主服務(wù)器發(fā)送PING的頻率,單位為秒 repl-ping-slave-period 10
重啟從服務(wù)器的Redis服務(wù)以應(yīng)用新的配置。
步驟5: 測試復(fù)制功能
在主服務(wù)器上執(zhí)行Redis命令,添加一些數(shù)據(jù):
redis-cli -a 123456 set key1 "value1"
然后,在從服務(wù)器上執(zhí)行:
redis-cli -a 123456 get key1
如果返回的是"value1",表示復(fù)制功能正常。
步驟6: 監(jiān)控復(fù)制狀態(tài)
使用以下命令在主服務(wù)器和從服務(wù)器上查看復(fù)制的狀態(tài)和信息:
redis-cli -a 123456 info replication
會看到類似于以下的信息:
192.168.10.1:6379> info replication # Replication role:master connected_slaves:2 slave0:ip=192.168.10.2,port=6379,state=online,offset=700,lag=0 slave1:ip=192.168.10.3,port=6379,state=online,offset=700,lag=0 master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:700 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:700 192.168.10.2:6379> info replication # Replication role:slave master_host:192.168.10.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_repl_offset:854 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:854 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:57 repl_backlog_histlen:798 192.168.10.3:6379> info replication # Replication role:slave master_host:192.168.10.1 master_port:6379 master_link_status:up master_last_io_seconds_ago:6 master_sync_in_progress:0 slave_repl_offset:854 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:b80a4720c0001efb62940f5ad6abaf9cdaf7a813 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:854 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:854
2. 參考文檔
https://redis.io/docs/management/replication/
到此這篇關(guān)于Redis server 主從復(fù)制配置實現(xiàn)的文章就介紹到這了,更多相關(guān)Redis server 主從復(fù)制配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis+Caffeine實現(xiàn)雙層緩存的策略對比與詳細指南
在高并發(fā)場景下,緩存是提升系統(tǒng)性能和并發(fā)處理能力的關(guān)鍵手段,本文將基于Spring?Boot,從方案對比分析出發(fā),深入探討Redis、本地Caffeine與雙層緩存的實現(xiàn)與性能差異,并給出選型建議與實際效果驗證2025-07-07
Redis常見數(shù)據(jù)類型List列表使用詳解
Redis的List是一種有序的字符串集合,支持兩端高效插入和刪除,適用于隊列和棧,這篇文章主要介紹了Redis常見數(shù)據(jù)類型List列表使用的相關(guān)資料,需要的朋友可以參考下2024-12-12
淺談redis內(nèi)存數(shù)據(jù)的持久化方式
這篇文章主要介紹了淺談redis內(nèi)存數(shù)據(jù)的持久化方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
Windows環(huán)境下打開Redis閃退的解決方案
每次使用完Redis后,我們習(xí)慣性的動作是直接叉掉doc頁面,這樣導(dǎo)致的結(jié)果是Redis在后臺繼續(xù)運行,沒有關(guān)閉,所以當(dāng)再次打開的時候直接閃退,文中有詳細的解決方案,需要的朋友可以參考下2024-03-03

