{eval=Array;=+count(Array);}

成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

問答專欄Q & A COLUMN

Redis 中怎樣做持久化?

社區(qū)管理員社區(qū)管理員 回答1 收藏3
收藏問題
溫馨提示
該問題目前已經(jīng)被作者或者管理員關(guān)閉, 無法添加新回復(fù)

1條回答

社區(qū)管理員

社區(qū)管理員

回答于2022-10-19 11:53

(1)在 Redis 實(shí)現(xiàn)持久化有兩種方式:AOF 日志 和 RDB 快照;
(2)AOF 日志
   ◆ 命令執(zhí)行成功后,才記錄日志;
   ◆ 命令執(zhí)行后進(jìn)行日志記錄,不會堵塞當(dāng)前的寫操作。
   ◆ 命令執(zhí)行完,日志記錄前宕機(jī),數(shù)據(jù)會丟失;
   ◆ AOF 日志在主線程中執(zhí)行,有 IO 瓶頸時會對后面的操作有堵塞風(fēng)險;
   ◆ 數(shù)據(jù)量比較大的時候,恢復(fù)很慢。
   ◆ 配置項(xiàng)(appendfsync)
            ◆ Always,同步寫回磁盤:每個寫命令執(zhí)行完,立即同步將日志寫回磁盤;
            ◆ Everysec,每秒寫回磁盤:每個寫命令執(zhí)行完,只是先把日志寫到 AOF 文件的內(nèi)存緩沖區(qū),每隔一秒把緩沖區(qū)中的內(nèi)容寫入磁盤;
            ◆ No,操作系統(tǒng)控制的寫回磁盤:每個寫命令執(zhí)行完,只是先把日志寫到 AOF 文件的內(nèi)存緩沖區(qū),由操作系統(tǒng)決定何時將緩沖區(qū)內(nèi)容寫回磁盤。
(3)RDB 快照
   ◆ 和 AOF 相比較,RDB 快照記錄的是某一個時刻的數(shù)據(jù),數(shù)據(jù)恢復(fù)是直接將 RDB 文件讀入內(nèi)存,速度很快;
   ◆ 生成 RDB 文件的兩種方式:
            ◆ save:在主線程中執(zhí)行,會導(dǎo)致阻塞;
            ◆ bgsave:創(chuàng)建一個子進(jìn)程,專門用于寫入 RDB 文件,避免了主線程的阻塞,這也是 Redis RDB 文件生成的默認(rèn)配置。子進(jìn)程是由主線程 fork 生成的,可以共享主線程的所有內(nèi)存數(shù)據(jù)。
   ◆ RDB 快照的間隔時間不宜設(shè)置過短,因?yàn)轭l繁進(jìn)行 Redis 的全量快照,會帶來性能問題:
            ◆ 前一個快照還沒做完,后面一個開始了,會給磁盤帶來壓力;
            ◆ bgsave 的子進(jìn)程雖然不會阻塞主線程,但創(chuàng)建的過程會阻塞,頻繁創(chuàng)建也會帶來性能問題。
   ◆ 解決上面問題的一種辦法就是使用增量快照;
   ◆ 在 Redis 4.0 中提出了一種混合 AOF 日志和 RDB 快照的方式:
            ◆ RDB 快照的間隔時間可以設(shè)置比較大,就不會影響到主線程的操作;
            ◆ 在快照的間隔期間可以使用 AOF 日志記錄所有的操作,當(dāng)下一次做全量 RDB 快照的時候,清空 AOF 日志;
            ◆ 通過 aof-use-rdb-preamble yes 來進(jìn)行設(shè)置。


評論0 贊同0
  •  加載中...

社區(qū)管理員

|打造一個專業(yè),規(guī)范,活躍的社區(qū)

TA的文章

閱讀更多

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<