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