新聞中心
Redis數(shù)據(jù)持久化

Redis是一種非關(guān)系型數(shù)據(jù)庫,它將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,為了保證數(shù)據(jù)的持久性,需要將數(shù)據(jù)持久化到磁盤上,Redis提供了兩種持久化方式:RDB和AOF。
RDB持久化
概念
RDB(Redis DataBase)持久化是將某個(gè)時(shí)間點(diǎn)上的所有數(shù)據(jù)都寫入一個(gè)非常緊湊的二進(jìn)制文件中,例如默認(rèn)的dump.rdb文件,這是一個(gè)非常優(yōu)秀的災(zāi)難恢復(fù)解決方案,你可以將RDB文件復(fù)制到另一個(gè)地方,當(dāng)需要的時(shí)候,可以將其導(dǎo)入到Redis中去。
配置
可以通過修改配置文件redis.conf來開啟RDB持久化功能。
900秒后會(huì)生成一次RDB快照,以下為注釋掉的配置項(xiàng) save 900 1 save 300 10 save 60 10000
上述配置表示在900秒(15分鐘)之后,如果至少有1個(gè)key發(fā)生變化則執(zhí)行一次快照。
觸發(fā)方式
手動(dòng)觸發(fā):使用SAVE或者BGSAVE命令,SAVE命令會(huì)阻塞Redis服務(wù)器進(jìn)程,直到RDB文件創(chuàng)建完畢為止,對(duì)于大型數(shù)據(jù)庫來說,這段時(shí)間可能很長;而BGSAVE命令則會(huì)派生出一個(gè)子進(jìn)程來創(chuàng)建RDB文件,父進(jìn)程繼續(xù)處理客戶端請(qǐng)求,新的改動(dòng)會(huì)被保存到aof_buf中,當(dāng)子進(jìn)程完成快照時(shí),再把a(bǔ)of_buf中的改動(dòng)寫入到RDB文件中。
自動(dòng)觸發(fā):在規(guī)定時(shí)間內(nèi),如果超過指定的key被修改,則自動(dòng)觸發(fā)BGSAVE。
AOF持久化
概念
AOF(Append Only File)持久化以日志的形式記錄服務(wù)器接收到的每一個(gè)寫操作,這些記錄將以Redis協(xié)議追加保存到AOF文件的末尾,Redis還能對(duì)AOF文件進(jìn)行后臺(tái)重寫,使得AOF文件的大小不至于超過實(shí)際需要。
配置
可以通過修改配置文件redis.conf來開啟AOF持久化功能。
appendonly yes # 開啟AOF持久化 appendfsync everysec # 每個(gè)second刷一次AOF,保證數(shù)據(jù)安全性
重寫機(jī)制
AOF重寫機(jī)制可以減小AOF文件的大小,當(dāng)AOF文件大小比給定值大或者給定時(shí)間內(nèi)AOF體積超過了給定值,就會(huì)自動(dòng)觸發(fā)rewrite,重寫過程中,會(huì)把所有修改過的指令以Redis協(xié)議的形式寫入到一個(gè)新的AOF文件中,新的文件體積會(huì)比舊文件小很多。
觸發(fā)方式
手動(dòng)觸發(fā):使用BGREWRITEAOF命令。
自動(dòng)觸發(fā):根據(jù)autoaofrewritepercentage和autoaofrewriteminsize參數(shù)控制自動(dòng)觸發(fā)。
歸納
以上是Redis數(shù)據(jù)持久化的兩種方式,可以根據(jù)不同的應(yīng)用場景選擇不同的持久化方式,也可以同時(shí)使用兩種方式來提高數(shù)據(jù)的安全性。
分享題目:怎么將redis中數(shù)據(jù)持久化
文章網(wǎng)址:http://www.dlmjj.cn/article/dphiied.html


咨詢
建站咨詢
