今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個(gè)機(jī)制:Reids 持久化和主從復(fù)制。
我們都知道Redis是一個(gè)內(nèi)存數(shù)據(jù)庫,在學(xué)習(xí)主從同步之前,我們首先要想到 Redis 是如何做數(shù)據(jù)持久化的,也就是說要先存儲到磁盤上嘛,這樣才方便主從之間的數(shù)據(jù)同步。
此外,因?yàn)镽edis 主從復(fù)制的原理也是后端面試必考知識點(diǎn),所以先送上一份福利【77道redis高頻面試題匯總(帶答案)】,面試用到率85%!
部分內(nèi)容展示:
回到正題,首先一起了解一下其中一個(gè)非常重要的內(nèi)容:Redis的持久化機(jī)制。
什么是Redis持久化?
Redis作為一個(gè)鍵值對內(nèi)存數(shù)據(jù)庫(NoSQL),數(shù)據(jù)都存儲在內(nèi)存當(dāng)中,在處理客戶端請求時(shí),所有操作都在內(nèi)存當(dāng)中進(jìn)行,如下所示:
這樣做有什么問題呢?
其實(shí),只要稍微有點(diǎn)計(jì)算機(jī)基礎(chǔ)知識的人都知道,存儲在內(nèi)存當(dāng)中的數(shù)據(jù),只要服務(wù)器關(guān)機(jī)(各種原因引起的),內(nèi)存中的數(shù)據(jù)就會(huì)消失了,不僅服務(wù)器關(guān)機(jī)會(huì)造成數(shù)據(jù)消失,Redis服務(wù)器守護(hù)進(jìn)程退出,內(nèi)存中的數(shù)據(jù)也一樣會(huì)消失。
對于只把Redis當(dāng)緩存來用的項(xiàng)目來說,數(shù)據(jù)消失或許問題不大,重新從數(shù)據(jù)源把數(shù)據(jù)加載進(jìn)來就可以了,但如果直接把用戶提交的業(yè)務(wù)數(shù)據(jù)存儲在Redis當(dāng)中,把Redis作為數(shù)據(jù)庫來使用,在其放存儲重要業(yè)務(wù)數(shù)據(jù),那么Redis的內(nèi)存數(shù)據(jù)丟失所造成的影響也許是毀滅性。 為了避免內(nèi)存中數(shù)據(jù)丟失,Redis提供了對持久化的支持,我們可以選擇不同的方式將數(shù)據(jù)從內(nèi)存中保存到硬盤當(dāng)中,使數(shù)據(jù)可以持久化保存。
Redis的主從復(fù)制
什么是主從復(fù)制
持久化保證了即使redis服務(wù)重啟也不會(huì)丟失數(shù)據(jù),因?yàn)閞edis服務(wù)重啟后將硬盤上持久化的數(shù)據(jù)恢復(fù)到內(nèi)存中,但是當(dāng)redis服務(wù)器的硬盤損壞了,可能導(dǎo)致數(shù)據(jù)丟失,不過通過redis的主從復(fù)制機(jī)制,就可以避免這種單點(diǎn)故障。
Redis 主從復(fù)制這套架構(gòu),一般我們生產(chǎn)上是不用的,不過這個(gè)確實(shí)一個(gè)難點(diǎn)和重點(diǎn),面試官基本上都會(huì)問到。整明白了,對于你理解其他各種關(guān)于數(shù)據(jù)同步方案或者中間件的原理思想都是很受用的。
-
Redis
+關(guān)注
關(guān)注
0文章
381瀏覽量
11203
原文標(biāo)題:入門到入土【Redis】持久化與主從復(fù)制(原理+實(shí)戰(zhàn))
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
Redis實(shí)戰(zhàn)筆記

Redis Cluster之故障轉(zhuǎn)移

兩個(gè)晶體管能如何實(shí)現(xiàn)高效正弦波振蕩?

華為云 Flexus 云服務(wù)器 X 實(shí)例:在 openEuler 系統(tǒng)下搭建 MySQL 主從復(fù)制

評論