久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis中的兩種持久化方式是什么

共計(jì) 1587 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

本篇內(nèi)容主要講解“Redis 中的兩種持久化方式是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓丸趣 TV 小編來(lái)帶大家學(xué)習(xí)“Redis 中的兩種持久化方式是什么”吧!

Redis 的兩種持久化方式

眾所周知,Redis 中提供了 AOF,RDB 兩種持久化,下面先來(lái)簡(jiǎn)單回顧一下。

RDB 持久化

RDB 持久化,就是把當(dāng)前時(shí)間點(diǎn)的數(shù)據(jù)庫(kù)的狀態(tài)保存到磁盤(pán)中,又稱(chēng)快照持久化。

RDB 可以手動(dòng)觸發(fā),也可以根據(jù)服務(wù)器配置定期執(zhí)行。

RDB 生成的文件,是一個(gè)經(jīng)過(guò)壓縮的二進(jìn)制文件,數(shù)據(jù)庫(kù)可以通過(guò)該文件還原到該時(shí)間點(diǎn)的狀態(tài)。

Redis 提供前臺(tái) RDB 持久化命令 SAVE 和后臺(tái) RDB 持久化命令 BGSAVE,前臺(tái)執(zhí)行時(shí),Redis 的其他命令會(huì)被阻塞,而后臺(tái)執(zhí)行時(shí),Redis 還可以繼續(xù)處理客戶(hù)端的命令請(qǐng)求。

RDB 二進(jìn)制文件中,保存的是鍵值對(duì)數(shù)據(jù),采用經(jīng)過(guò)壓縮的自定義編碼,帶校驗(yàn)。通過(guò) od 命令可以轉(zhuǎn)化為可讀。

主從復(fù)制時(shí),初始化的全量復(fù)制采用 RDB 文件。

【相關(guān)推薦:Redis 視頻教程】

AOF 持久化

AOF 持久化,全稱(chēng)是 Appen Only File,意思是追加的持久化方式,其中保存的是寫(xiě)命令,而非數(shù)據(jù)。

AOF 持久化過(guò)程分為命令追加、文件寫(xiě)入、文件同步三個(gè)步驟。

命令追加:Redis 服務(wù)端每執(zhí)行完一個(gè)寫(xiě)命令,都會(huì)以 AOF 協(xié)議格式將該寫(xiě)命令追加到服務(wù)器狀態(tài)的 aof_buf 緩沖區(qū)末尾。

文件寫(xiě)入:Redis 中,每結(jié)束一個(gè)事件循環(huán)之前,都會(huì)調(diào)用 flushAppendOnlyFile 函數(shù),將 aof_buf 緩沖區(qū)中的內(nèi)容寫(xiě)入到 AOF 文件。

文件同步:同步 sync 指的是文件寫(xiě)入到操作系統(tǒng)緩沖區(qū)中時(shí),是否直接同步到磁盤(pán)中。通過(guò)配置,可以選擇立即同步、每秒同步、不主動(dòng)同步而由操作系統(tǒng)控制,這三種同步方式。關(guān)于文件 I / O 緩沖:https://www.litreily.top/2018/10/25/io-cache/

Redis 優(yōu)先使用 AOF 文件來(lái)恢復(fù)數(shù)據(jù)。

AOF 文件由于存儲(chǔ)命令,且沒(méi)有經(jīng)過(guò)壓縮,其體積要大于 RDB 文件。

AOF 文件可以定期采用 BGREWRITEAOF 重寫(xiě),減少重復(fù)命令、已失效命令,合并命令等。

AOF 文件支持后臺(tái)重寫(xiě),采用 fork 子進(jìn)程的形式實(shí)現(xiàn)。子進(jìn)程帶有服務(wù)器進(jìn)程的數(shù)據(jù)副本,再避免使用鎖的情況下保證數(shù)據(jù)安全性。另外也采用 AOF 重寫(xiě)緩沖區(qū)解決了數(shù)據(jù)不一致。

兩種持久化分別的優(yōu)缺點(diǎn) RDB 的優(yōu)點(diǎn)

文件體積小,適合拷貝做冷備

相比 AOF,備份恢復(fù)速度更快

RDB 的缺點(diǎn)

丟失數(shù)據(jù)多

fork 子進(jìn)程來(lái)做 BGSAVE,消耗一定的內(nèi)存資源

AOF 的優(yōu)點(diǎn)

丟失數(shù)據(jù)少

增加了寫(xiě)緩沖區(qū),無(wú)需尋址,速度快

append-only,也無(wú)需做磁盤(pán)尋址,效率高

AOF 的缺點(diǎn)

文件體積大

AOF 每次都需要做一下寫(xiě)入 aof_buf 的操作,開(kāi)啟 AOF 持久化后,QPS 會(huì)略微降低

Redis 為什么需要兩種持久化?

經(jīng)過(guò)上面的回顧,我們可以看到,RDB 與 AOF 持久化有明顯區(qū)別。

存儲(chǔ)的內(nèi)容:RDB 存儲(chǔ)某一時(shí)間點(diǎn)的數(shù)據(jù);AOF 存儲(chǔ)執(zhí)行的寫(xiě)命令。

文件大小:RDB 文件較小;AOF 文件較大。

寫(xiě)入方式:RDB 可采用前臺(tái) / 后臺(tái)寫(xiě)入方式;AOF 采用每次執(zhí)行寫(xiě)命令,都將命令存入緩沖區(qū)的方式,另外可定期重寫(xiě)。

數(shù)據(jù)丟失:RDB 丟失從宕機(jī)到上一次 RDB 同步之間的所有數(shù)據(jù);AOF 根據(jù) I / O 緩沖區(qū)所配置的刷新方式,不丟失或丟失 1s 或幾秒的數(shù)據(jù)。

根據(jù)這些對(duì)比,可以看到 RDB 持久化更適合保存一個(gè)時(shí)間點(diǎn)的數(shù)據(jù),在主從復(fù)制或者數(shù)據(jù)全量異地災(zāi)備時(shí),拷貝到其他地方,而 AOF 持久化由于丟失數(shù)據(jù)較少,比較適合作為本地備份,在 Reids 掛掉重啟時(shí)作為故障恢復(fù)。這就是我理解的為什么 Redis 需要兩種持久化方式。

到此,相信大家對(duì)“Redis 中的兩種持久化方式是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)1587字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 东乡| 绥芬河市| 厦门市| 博乐市| 阿尔山市| 广昌县| 梧州市| 周至县| 南溪县| 镇坪县| 华宁县| 永仁县| 广宁县| 淮南市| 贵定县| 松江区| 九龙县| 博野县| 朝阳区| 平和县| 会理县| 同江市| 会同县| 民勤县| 斗六市| 巴马| 行唐县| 昌平区| 峨边| 广安市| 丽水市| 广灵县| 梨树县| 清水河县| 通河县| 木里| 罗江县| 铜山县| 浪卡子县| 庆元县| 巴塘县|