日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis开发与运维之第五章持久化

發布時間:2023/12/10 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis开发与运维之第五章持久化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Redis提供兩種持久化方式 : RDB 和AOF

bgsave 命令的運作流程

RDB優點:

是一個緊湊壓縮的二進制文件,代表Redis在某個時間點上的數據快照非常實用于備份,全量復制等場景。比如每6小時執行bgsave備份,并吧文件拷貝到遠程機器或者文件系統中 hdfs ,用于災難恢復。

RDB恢復數據遠遠快于AOF方式

缺點:

RDB方式數據沒辦法做到實時持久化/秒級持久化。因為bgsave每次運行都要執行fork操作創建子進程,屬于重量級操作,頻繁執行成本過高。

RDB文件使用特定二進制格式保存,Redis版本演進過程中有多個格式的RDB版本,存在老版本Redis服務無法箭筒新版RDB格式的問題。

AOF工作流程

AOF解決了實時性持久化數據問題 采用文本協議格式

原因是: 很好的兼容性、開啟AOF后,所有寫入命令都包含追加操作,直接采用協議格式,避免了二次處理開銷、

文本協議具有可讀性,方便直接修改和處理。

AOF為啥把命令追加到aof_bug中?

redis使用單線程響應命令,如果每次寫AOF文件命令都直接加到硬盤,那么性能完全取決于當前硬盤負載。寫寫入緩沖區aof_bug中,可以提供多種緩沖區同步硬盤的策略,在性能和安全性方面做出平衡。

2.RDB使用一次性生成內存快照的方式,無法做到實時持久化,一般用于數據冷備和復制傳輸。

3.AOF通過追加寫命令到文件實現持久化,通過appendfsync 參數可以控制實時/秒級持久化。因為需要不斷追加寫命令,所以AOF文件體積逐漸變大,需要定期執行重寫操作來降低文件體積。

4. save命令會阻塞主線程不建議使用,bgsave命令通過fork操作創建子進程生成RDB避免阻塞。

5.AOF重寫可以通過 auto-aof-rewrite-min-size 和 auto-aof-rewrite-percentage 參數控制自動觸發,也可以使用bgrewriteaof命令手動觸發。

?AOF重寫運作流程

6. 子進程執行期間使用copy-on-write 機制與父進程共享內存,避免內存消耗翻倍。AOF重寫期間還需要維護重寫緩沖區,保存新的寫入命令避免數據丟失。

7.持久化阻塞主線程場景有: fork阻塞 和 AOF 追加阻塞。 fork 阻塞時間跟內存量和系統有關,AOF追加阻塞說明硬盤資源緊張。

8..單機下部署多個實例時,為了防止出現多個子進程執行重寫操作,建議做隔離控制,避免CPU和IO資源競爭。

everysec 刷盤策略的過程

輪詢控制AOF重寫

總結

以上是生活随笔為你收集整理的Redis开发与运维之第五章持久化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。