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

歡迎訪問 生活随笔!

生活随笔

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

数据库

redis stream持久化_一文了解:Redis的RDB持久化

發布時間:2024/1/23 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis stream持久化_一文了解:Redis的RDB持久化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一文了解:Redis的RDB持久化

Redis是內存數據庫,為了保證數據不在故障后丟失,Redis需要將數據持久化到硬盤上。

Redis持久化有兩種方式:一種是快照,全量備份。一種是AOF方式,連續增量方式。

RDB

RDB持久化就是把數據生成快照保存到硬盤的過程。每N分鐘數據發送了M次寫操作之后,從內存dump數據形成rdb文件,壓縮后放在備份目錄

工作原理

Redis-Server主進程會Fork一個子進程在后臺生成RDB文件,主進程可以在不阻塞線程情況下接收其他命令。在主進程Fork過程中會產生阻塞,Fork完成后不在阻塞主進程,持久化工作交給子進程,子進程會生成一個臨時的快照文件,完成后會對原有文件進行替換。

保存時間點配置

在redis.conf文件中可以設置每N秒之后M個Key發生了寫操作就保存快照。

格式為:save save 900 1 # 900秒之后至少有1個Key發生寫操作save 300 10 # 300秒之后至少有10個Key發生寫操作save 60 10000 # 60秒之后至少有10000個Key發生寫操作

先檢查60秒之內是否有1000個寫操作,再檢查300秒之后是否有10個寫操作,最后檢查900秒之后是否有1個寫操作。

如果想要禁用RDB功能可以注釋掉所有的save配置,也可以將save配置改為save ""

文件

RDB文件保存在dir配置的指定目錄下,默認為redis-server啟動目錄,RDB文件文件名為dbfilename配置,默認為dump.rdb文件名,我們可以更改dir和dbfilename配置修改文件保存的路徑和文件名。

dir ./dbfilename dump.rdb

通過 config set dir {newDir} 動態修改dir配置

> config set dir /Users/JAVA/Redis/RDBOK

通過 config set dbfilename {newDbfilename} 動態修改RDB文件名稱

> config set dbfilename backup.rdbOK

壓縮

RDB文件默認以LZF算法壓縮保存,rdbcompression配置默認為yes,當改為no時表示不壓縮。

rdbcompression yes

通過 config set rdbcompression {yes|no} 動態修改是否壓縮

錯誤處理

當快照過程中發生錯誤可以通過stop-writes-on-bgsave-error配置禁止Redis再寫入數據,默認為yes開啟。

stop-writes-on-bgsave-error yes

通過 config set stop-writes-on-bgsave-error {yes|no} 動態修改是否開啟RDB文件快照過程出錯時禁止寫入數據到Redis.

檢驗

在版本5中,為了保證RDB文件的完整性會在文件末尾加入一個CRC64的校驗碼。通過rdbchecksum配置是否開啟,如果配置為no則使用0代替CRC64校驗碼,加載RDB文件時會跳過校驗。

rdbchecksum yes

通過 config set rdbchecksum {yes|no} 動態修改是否添加校驗碼

手動觸發命令

save命令

save命令會使用阻塞主進程的方式生成RDB文件,這意味著生成RDB文件過程中其他命令將阻塞等待RDB文件生成完成。所以不建議在生產環境使用。

> saveOK

bgsave和lastsave命令

bgsave命令會使用和自動觸發生成RDB文件一樣,在后臺fork()一個子進程生成RDB文件??梢酝ㄟ^lastsave命令查看是否成功。

> bgsaveBackground saving started> lastsave(integer) 1565190498

優缺點

優點

  • 保存了某個時間點的快照數據,適合做災備
  • RDB的啟動速度比AOF快
  • 缺點

  • 沒辦法做到實時持久化,在保存時間點未到達時故障,容易丟掉最新數據
  • fork操作會在創建子進程期間阻塞主進程
  • 總結

    以上是生活随笔為你收集整理的redis stream持久化_一文了解:Redis的RDB持久化的全部內容,希望文章能夠幫你解決所遇到的問題。

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