redis stream持久化_一文了解:Redis的RDB持久化
一文了解:Redis的RDB持久化
Redis是內(nèi)存數(shù)據(jù)庫,為了保證數(shù)據(jù)不在故障后丟失,Redis需要將數(shù)據(jù)持久化到硬盤上。
Redis持久化有兩種方式:一種是快照,全量備份。一種是AOF方式,連續(xù)增量方式。
RDB
RDB持久化就是把數(shù)據(jù)生成快照保存到硬盤的過程。每N分鐘數(shù)據(jù)發(fā)送了M次寫操作之后,從內(nèi)存dump數(shù)據(jù)形成rdb文件,壓縮后放在備份目錄
工作原理
Redis-Server主進(jìn)程會Fork一個子進(jìn)程在后臺生成RDB文件,主進(jìn)程可以在不阻塞線程情況下接收其他命令。在主進(jìn)程Fork過程中會產(chǎn)生阻塞,Fork完成后不在阻塞主進(jìn)程,持久化工作交給子進(jìn)程,子進(jìn)程會生成一個臨時的快照文件,完成后會對原有文件進(jìn)行替換。
保存時間點配置
在redis.conf文件中可以設(shè)置每N秒之后M個Key發(fā)生了寫操作就保存快照。
格式為:save save 900 1 # 900秒之后至少有1個Key發(fā)生寫操作save 300 10 # 300秒之后至少有10個Key發(fā)生寫操作save 60 10000 # 60秒之后至少有10000個Key發(fā)生寫操作先檢查60秒之內(nèi)是否有1000個寫操作,再檢查300秒之后是否有10個寫操作,最后檢查900秒之后是否有1個寫操作。
如果想要禁用RDB功能可以注釋掉所有的save配置,也可以將save配置改為save ""
文件
RDB文件保存在dir配置的指定目錄下,默認(rèn)為redis-server啟動目錄,RDB文件文件名為dbfilename配置,默認(rèn)為dump.rdb文件名,我們可以更改dir和dbfilename配置修改文件保存的路徑和文件名。
dir ./dbfilename dump.rdb通過 config set dir {newDir} 動態(tài)修改dir配置
> config set dir /Users/JAVA/Redis/RDBOK通過 config set dbfilename {newDbfilename} 動態(tài)修改RDB文件名稱
> config set dbfilename backup.rdbOK壓縮
RDB文件默認(rèn)以LZF算法壓縮保存,rdbcompression配置默認(rèn)為yes,當(dāng)改為no時表示不壓縮。
rdbcompression yes通過 config set rdbcompression {yes|no} 動態(tài)修改是否壓縮
錯誤處理
當(dāng)快照過程中發(fā)生錯誤可以通過stop-writes-on-bgsave-error配置禁止Redis再寫入數(shù)據(jù),默認(rèn)為yes開啟。
stop-writes-on-bgsave-error yes通過 config set stop-writes-on-bgsave-error {yes|no} 動態(tài)修改是否開啟RDB文件快照過程出錯時禁止寫入數(shù)據(jù)到Redis.
檢驗
在版本5中,為了保證RDB文件的完整性會在文件末尾加入一個CRC64的校驗碼。通過rdbchecksum配置是否開啟,如果配置為no則使用0代替CRC64校驗碼,加載RDB文件時會跳過校驗。
rdbchecksum yes通過 config set rdbchecksum {yes|no} 動態(tài)修改是否添加校驗碼
手動觸發(fā)命令
save命令
save命令會使用阻塞主進(jìn)程的方式生成RDB文件,這意味著生成RDB文件過程中其他命令將阻塞等待RDB文件生成完成。所以不建議在生產(chǎn)環(huán)境使用。
> saveOKbgsave和lastsave命令
bgsave命令會使用和自動觸發(fā)生成RDB文件一樣,在后臺fork()一個子進(jìn)程生成RDB文件。可以通過lastsave命令查看是否成功。
> bgsaveBackground saving started> lastsave(integer) 1565190498優(yōu)缺點
優(yōu)點
缺點
總結(jié)
以上是生活随笔為你收集整理的redis stream持久化_一文了解:Redis的RDB持久化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读取pdf文档书签 book
- 下一篇: uvm 形式验证_验证平台自动化篇之二: