如何理解redis持久化,有幾種方式?-創(chuàng)新互聯(lián)

其實(shí)redis就是一種高級的以鍵值對形式存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫,而它的好處就是他可以支持?jǐn)?shù)據(jù)的持久化,其實(shí)redis之所以會(huì)有這樣的優(yōu)點(diǎn),主要是因?yàn)?,redis的數(shù)據(jù)都是存放在內(nèi)存中的,如果不配置持久化,那么在redis進(jìn)行重啟的時(shí)候,就會(huì)造成數(shù)據(jù)的丟失,于是redis開啟了數(shù)據(jù)的持久化功能,將所有的數(shù)據(jù)保存到磁盤中,當(dāng)redis重啟之后,就可以直接從磁盤中恢復(fù)數(shù)據(jù),所以redis的持久化功能,主要就是為了防止服務(wù)器宕機(jī)而造成的數(shù)據(jù)丟失。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)易縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

圖片

redis也提供了兩種不同的持久化方式:

第一種是:RDB持久化,RDB是Redis DataBase的縮寫,redis默認(rèn)的持久化方式,簡單來講就是將redis在內(nèi)存中的數(shù)據(jù)庫記錄按照指定的時(shí)間轉(zhuǎn)存到磁盤當(dāng)中,其實(shí)就是一定時(shí)間間隔內(nèi)對你的數(shù)據(jù)進(jìn)行一個(gè)快照存儲(chǔ),在默認(rèn)的情況下,redis在完成快照存儲(chǔ)后就會(huì)將這些數(shù)據(jù)保存在一個(gè)dump.rdb的文件中,當(dāng)redis運(yùn)行的時(shí)候,RDB就會(huì)將內(nèi)存中的數(shù)據(jù)集存儲(chǔ)到磁盤當(dāng)中,在redis進(jìn)行重啟的時(shí)候,就可以通過載入RDB文件到RDB程序進(jìn)行數(shù)據(jù)的同步恢復(fù)。

優(yōu)點(diǎn):因?yàn)榉?wù)區(qū)在執(zhí)行保存dump.rdb文件時(shí),首先需要redis去調(diào)用forks()時(shí),就會(huì)同時(shí)擁有父進(jìn)程和子進(jìn)程,而子進(jìn)程其實(shí)就是將這些數(shù)據(jù)寫入到一個(gè)臨時(shí)的RDB文件當(dāng)中,當(dāng)子進(jìn)程完成寫入后,redis就會(huì)用一個(gè)新的RDB文件替換掉舊的RDB文件,并且將舊的RDB文件刪除,所以因?yàn)檫@樣的工作方式,RDB持久化方式就只有一個(gè)dump.rdb文件,非常方便持久化,而且由子進(jìn)程完成寫的操作,讓主進(jìn)程可以繼續(xù)處理命令,這樣可以使得IO大化,使用單獨(dú)的子進(jìn)程來進(jìn)行持久化,主進(jìn)程就不會(huì)進(jìn)行任何的IO操作,這樣可以保證redis的高性能。

缺點(diǎn):因?yàn)镽DB是按照指定的時(shí)間每隔一段時(shí)間就要進(jìn)行一次持久化,如果在持久化的過程中redis發(fā)生故障,那么依然會(huì)發(fā)生數(shù)據(jù)丟失,所以一般都在數(shù)據(jù)要求不太嚴(yán)謹(jǐn)?shù)臅r(shí)候使用這種方式。

第二種:AOF持久化,AOF是Append Only File的縮寫,默認(rèn)AOF是不開啟的,需要在redis.conf配置文件中手動(dòng)開啟,這種持久化方式就是將redis執(zhí)行的每一次命令記錄到單獨(dú)的日志文件當(dāng)中,當(dāng)還原數(shù)據(jù)時(shí),只需要將這些備份的指令再重新執(zhí)行一遍即可。redis的配置文件中存在三種不同的AOF持久化方式,分別是:

appendfsync always:每次有數(shù)據(jù)修改發(fā)生時(shí)都會(huì)寫入AOF文件,這樣會(huì)嚴(yán)重降低Redis的速度

appendfsync everysec:每秒鐘同步一次,將多個(gè)寫命令同步到硬盤

appendfsync no:讓操作系統(tǒng)決定何時(shí)進(jìn)行同步

而且由于AOF持久化對日志文件的寫入操作采用的是append模式,使用這種模式的好處就是,即使在寫入的過程中出現(xiàn)宕機(jī)現(xiàn)象,也不會(huì)破壞日志文件中已經(jīng)存在的內(nèi)容,然而如果我們本次操作只寫入了一半數(shù)據(jù)就出現(xiàn)了系統(tǒng)崩潰問題,也不用擔(dān)心,在redis下一次啟動(dòng)之前,我們可以通過redis-check-aof工具來幫忙解決這種數(shù)據(jù)一致性的問題。

優(yōu)點(diǎn):數(shù)據(jù)安全,因?yàn)锳OF有寫回策略機(jī)制,比如:always,意思就是可以在每個(gè)執(zhí)行命令執(zhí)行完之后,立刻同步的將日志寫回磁盤,而且AOF持久化快,能夠減少數(shù)據(jù)丟失的量,在配置了everysec的情況下最多只會(huì)丟失秒級數(shù)據(jù)。

缺點(diǎn):在同等數(shù)據(jù)量的情況下,AOF文件的大小要比RDB文件大很多,如果使用它進(jìn)行內(nèi)存的恢復(fù)需要一定的時(shí)間。

針對以上闡述,在選擇持久化方式上,一般來說,如果想要達(dá)到足以媲美關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)安全性,那么就應(yīng)該同時(shí)使用兩種持久化功能(redis4.0開始支持RDB和AOF混合持久化),在這種情況下,當(dāng)redis重啟的時(shí)候就會(huì)優(yōu)先載入AOF文件來恢復(fù)原始數(shù)據(jù),因?yàn)橥ǔ_@種情況下,AOF文件保存數(shù)據(jù)集要比RDB文件保存數(shù)據(jù)集更加完整,如果你非常關(guān)心你的數(shù)據(jù),但是仍然可以承受一些保持在分鐘之內(nèi)的數(shù)據(jù)丟失,那么你可以只選擇使用RDB持久化,因?yàn)樗梢愿?,但是?huì)有一些分鐘之內(nèi)的數(shù)據(jù)丟失是它的缺點(diǎn)。
https://b23.tv/8mP4VCF
https://b23.tv/HtAoFSY
https://b23.tv/AQfC1t0
https://b23.tv/SxNsEZm
有很多人都只使用AOF持久化,但其實(shí)不太推薦,因?yàn)槎〞r(shí)生成RDB快照非常方便于進(jìn)行數(shù)據(jù)庫的備份,并且RDB恢復(fù)數(shù)據(jù)集的速度也要比AOF恢復(fù)的速度快,除此之外,使用RDB也可以有效規(guī)避AOF程序的bug,當(dāng)然如果你只希望你的數(shù)據(jù)在服務(wù)器運(yùn)行的時(shí)候存在,也可以不選擇使用任何持久化方式。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:如何理解redis持久化,有幾種方式?-創(chuàng)新互聯(lián)
本文路徑:http://bm7419.com/article36/dgoopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站導(dǎo)航、網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)