Redis搭建(二):主从复制
生活随笔
收集整理的這篇文章主要介紹了
Redis搭建(二):主从复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、引言
Redis有三種集群模式:
- 第一個就是主從模式
- 第二種“哨兵”模式,在Redis 2.6版本開始提供,2.8版本穩定
- 第三種是Cluster集群模式,在Redis 3.x以后的版本才增加進來的
二、主從介紹:
1. 工作原理:
?
- Slave啟動并連接到Master之后,它將主動發送一個SYNC命令。Master收到同步命令后將啟動后臺存盤進程,同時收集所有接收到的用于修改數據集的命令,在后臺進程執行完畢后,Master將傳送整個數據庫文件到Slave,以完成一次完全同步。
- Slave在接收到數據庫文件數據之后將其存盤并加載到內存中。
- 此后,Master主節點繼續將所有已經收集到的修改命令,和新的修改命令依次傳送給Slaves,Slave將在本次執行這些數據修改命令,從而達到最終的數據同步。
- 如果Master和Slave之間的鏈接出現斷連現象,Slave可以自動重連Master,但是在連接成功之后,一次完全同步將被自動執行。
2. 特點:
- 同一個Master可以同步多個Slaves。
- Slave同樣可以接受其它Slaves的連接和同步請求,這樣可以有效的分載Master的同步壓力。因此我們可以將Redis的Replication架構視為圖結構。
- Master Server是以非阻塞的方式為Slaves提供服務。所以在Master-Slave同步期間,客戶端仍然可以提交查詢或修改請求。
- Slave Server同樣是以非阻塞的方式完成數據同步。在同步期間,如果有客戶端提交查詢請求,Redis則返回同步之前的數據。
- 為了分載Master的讀操作壓力,Slave服務器可以為客戶端提供只讀操作的服務,寫服務仍然必須由Master來完成。即便如此,系統的伸縮性還是得到了很大的提高。
- Master可以將數據保存操作交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操作。
- 支持主從復制,主機會自動將數據同步到從機,可以進行讀寫分離。
3. 缺點:
- master宕機,需手動修改配置、切換主從。
- Redis的主從復制采用全量復制,復制過程中主機會fork出一個子進程對內存做一份快照,并將子進程的內存快照保存為文件發送給從機,這一過程需要確保主機有足夠多的空余內存。若快照文件較大,對集群的服務能力會產生較大的影響,而且復制過程是在從機新加入集群或者從機和主機網絡斷開重連時都會進行,也就是網絡波動都會造成主機和從機間的一次全量的數據復制,這對實際的系統運營造成了不小的麻煩。
- Redis較難支持在線擴容,在集群容量達到上限時在線擴容會變得很復雜。為避免這一問題,運維人員在系統上線時必須確保有足夠的空間,這對資源造成了很大的浪費。
三、配置步驟:
1. 部署環境
- 一個master,兩個slave,master不需要修改
- 復制兩份slave配置文件,redis6380.conf和redis6380.conf,master使用redis.conf
2. 統一配置
daemonize yes //以后臺模式運行
appendonly yes //默認值是No,意思是不使用AOF增量持久化的方式,使用RDB全量持久化的方式。把No值改成Yes,使用AOF增量持久化的方式
3. slave的配置
- 修改pid和端口號,與文件名對應
- 如果設置了密碼,就要設置:masterauth <master-password>
- 配置slaveof,指定master地址
?
?
4. 啟動所有Redis
redis-server redis.conf redis-server redis6380.conf redis-server redis6381.conf?
四、測試
1. 連接master,設置key
?
2. 查看集群信息,使用info replication命令
?
3. 連接slave,查看key信息,并測試寫功能
?
?
轉載于:https://www.cnblogs.com/wslook/p/9152087.html
總結
以上是生活随笔為你收集整理的Redis搭建(二):主从复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 字符串的魔法 day11(
- 下一篇: 错误本