Redis-18Redis主从同步
文章目錄
- 概述
- 主從同步
- Redis主從同步配置
- 主服務器
- 從服務器
- Redis主從同步過程
- 缺點
概述
盡管 Redis 的性能很好,但是有時候依舊滿足不了應用的需要,比如過多的用戶進入主頁,導致 Redis 被頻繁訪問,此時就存在大量的讀操作。顯然單靠一臺 Redis 服務器是完全不夠用的 當主服務器不能正常工作的時候,我們希望從服務器代替原來的主服務器,作為災備,以保證系統可以繼續正常的工作 。
主從同步
所謂主從架構設計的思路大概是:
- 在多臺數據服務器中,只有一臺主服務器,而主服務器只負責寫入數據,不負責讓外部程序讀取數據。
- 存在多臺從服務器,從服務器不寫入數據,只負責同步主服務器的數據,并讓外部
程序讀取數據。 - 主服務器在寫入數據后,即刻將寫入數據的命令發送給從服務器,從而使得主從數
據同步。 - 應用程序可以隨機讀取某一臺從服務器 的數據, 這樣就分攤了讀數據的壓力。
- 當從服務器不能工作的時候,整個系統將不受影響: 當主服務器不能工作的時候,
可以方便地從從服務器中選舉一臺來當主服務器 。
這只是一種大概的思路, 每一種數據存儲的軟件都會根據其自身的特點對上面的這幾點思路加以改造,但是萬變不離其宗 , 只要理解了這幾點就很好理解 Redis 的復制機制。
這個時候讀數據就可以隨機從從服務器上讀取,當從服務器是多臺的時候,那么單臺服務器的壓力就大大降低了,這十分有利于系統性能的提高, 當主服務器出現不能工作的情況時,也可以切換為其中的一臺從服務器繼續讓系統穩定運行,所以也有利于系統運行的安全性。當然由于 Redis 自身具備的特點,所以其也有實現主從同步的特殊方式。
Redis主從同步配置
對 Redis 進行主從同步的配置分為主機與從機,主機是一臺,而從機可以是多臺 .
主服務器
首先,明確主機。當你能確定哪臺機子是主機的時候,關鍵的兩個配置是 dir和dbfilename 選項, 當然必須保證這兩個文件是可寫的。
對于 Redis 的 默認配置而言, dir 的默認值為“./”,而對于 dbfilename 的默認值為“ dump.rbd ”。換句話說,默認采用 Redis當前目錄的 dump.rbd 文件進行同步。
對于主機而言,只要了解這多信息,很簡單 。
從服務器
其次 , 在明確了從機之后,進行進一步配置所要關注的只有 slaveof這個配置選項,它的配置格式是 :
slaveof server port其中 server 代表主機,port代表端口。
當從機 Redis 服務重啟 時,就會同步對應主機的數據了。當不想讓從機繼續復制主機的數據時,可以在從機的 Redis 命令客戶端發送slaveof no one 命令,這樣從機就不會再接收主服務器的數據更新了。
又或者原來主服務器已經無法工作了,而你可能需要去復制新的主機,這個時候執行 slaveof sever port 就能讓從機復制另外一臺主機的數據了。
在實際的 Linux 環境中,配置文件 redis.conf 中還有一個 bind 的配置 , 默認為 127 .0 .0.1,也就是只允許本機訪 問 ,把它修改為 bind 0.0.0.0,其他的服務器就能夠訪 問了 .
Redis主從同步過程
以上 5 步就是 Redis 主從同步的過程。
只是在主服務器同步到從服務器的過程中,需要備份文件,所以在配置的時候一般需要預留 一些內存空間給主服務器,用以騰出空間執行備份命令。 一般來說主服務器使用50%~65%的內存空間 ,以為 主從復制留下可用的內存空間。
缺點
主從切換技術的方法是: 當主服務器右機后,需要手動把一臺從服務器切換為主從服務器,這就需要人工干預,既費時費力,汪會造成一段時間內服務不可用,更多的時候,我們優先考慮Redis的哨兵模式。
總結
以上是生活随笔為你收集整理的Redis-18Redis主从同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis-17Redis内存回收策略
- 下一篇: 高并发-【抢红包案例】之四:使用Redi