這篇文章主要介紹“redis的持久化方式怎么使用”,在日常操作中,相信很多人在redis的持久化方式怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”redis的持久化方式怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
超過10多年行業(yè)經(jīng)驗,技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,重慶小程序開發(fā),微信開發(fā),APP應(yīng)用開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!
redis支持兩種持久化的方式,可以單獨使用或者結(jié)合起來使用
一、RDB
rdb方式的持久化是通過快照完成的,當(dāng)符合一定條件時redis會自動將內(nèi)存中的所有數(shù)據(jù)執(zhí)行快照操作并存儲到硬盤上。默認(rèn)存儲在redis根目錄的dump.rdb文件中。(文件名在配置文件中dbfilename)
redis進(jìn)行快照的時機(jī)(在配置文件redis.conf中)
save 900 1:表示900秒內(nèi)至少一個鍵被更改則進(jìn)行快照。
save 300 10
save 60 10000
redis自動實現(xiàn)快照的過程
1:redis使用fork函數(shù)復(fù)制一份當(dāng)前進(jìn)程的副本(子進(jìn)程)
2:父進(jìn)程繼續(xù)接收并處理客戶端發(fā)來的命令,而子進(jìn)程開始將內(nèi)存中的數(shù)據(jù)寫入硬盤中的臨時文件
3:當(dāng)子進(jìn)程寫入完所有數(shù)據(jù)后會用該臨時文件替換舊的RDB文件,至此,一次快照操作完成。
注意:redis在進(jìn)行快照的過程中不會修改RDB文件,只有快照結(jié)束后才會將舊的文件替換成新的,也就是說任何時候RDB文件都是完整的。 這就使得我們可以通過定時備份RDB文件來實現(xiàn)redis數(shù)據(jù)庫的備份, RDB文件是經(jīng)過壓縮的二進(jìn)制文件,占用的空間會小于內(nèi)存中的數(shù)據(jù),更加利于傳輸。
手動執(zhí)行save或者bgsave命令讓redis執(zhí)行快照。
兩個命令的區(qū)別在于,save是由主進(jìn)程進(jìn)行快照操作,會阻塞其它請求。bgsave是由redis執(zhí)行fork函數(shù)復(fù)制出一個子進(jìn)程來進(jìn)行快照操作。
文件修復(fù):redis-check-dump
rdb的優(yōu)缺點
優(yōu)點:由于存儲的有數(shù)據(jù)快照文件,恢復(fù)數(shù)據(jù)很方便。
缺點:會丟失最后一次快照以后更改的所有數(shù)據(jù)。
二、AOF
aof方式的持久化是通過日志文件的方式。默認(rèn)情況下redis沒有開啟aof,可以通過參數(shù)appendonly參數(shù)開啟。
appendonly yes
aof文件的保存位置和rdb文件的位置相同,都是dir參數(shù)設(shè)置的,默認(rèn)的文件名是appendonly.aof,可以通過 appendfilename參數(shù)修改
appendfilename appendonly.aof
redis寫命令同步的時機(jī)
a ppendfsync always 每次都會執(zhí)行
appendfsync everysec 默認(rèn) 每秒執(zhí)行一次同步操作(推薦,默認(rèn))
appendfsync no不主動進(jìn)行同步,由操作系統(tǒng)來做,30秒一次
aof日志文件重寫
auto-aof-rewrite-percentage 100(當(dāng)目前aof文件大小超過上一次重寫時的aof文件大小的百分之多少時會再次進(jìn)行重寫,如果之前沒有重寫,則以啟動時的aof文件大小為依據(jù))
auto-aof-rewrite-min-size 64mb
手動執(zhí)行bgrewriteaof進(jìn)行重寫
重寫的過程只和內(nèi)存中的數(shù)據(jù)有關(guān),和之前的aof文件無關(guān)。 所謂的“重寫”其實是一個有歧義的詞語, 實際上, AOF 重寫并不需要對原有的 AOF 文件進(jìn)行任何寫入和讀取, 它針對的是數(shù)據(jù)庫中鍵的當(dāng)前值。
文件修復(fù):redis-check-aof
動態(tài)切換redis持久方式,從 RDB 切換到 AOF(支持Redis 2.2及以上)
CONFIG SET appendonly yes
CONFIG SET save ""(可選)
注意:當(dāng)redis啟動時,如果rdb持久化和aof持久化都打開了,那么程序會優(yōu)先使用aof方式來恢復(fù)數(shù)據(jù)集,因為aof方式所保存的數(shù)據(jù)通常是最完整的。如果aof文件丟失了,則啟動之后數(shù)據(jù)庫內(nèi)容為空。
注意:如果想把正在運行的redis數(shù)據(jù)庫,從RDB切換到AOF,建議先使用動態(tài)切換方式,再修改配置文件,重啟數(shù)據(jù)庫。(不能直接修改配置文件,重啟數(shù)據(jù)庫,否則數(shù)據(jù)庫中數(shù)據(jù)就為空了。)
到此,關(guān)于“redis的持久化方式怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
分享文章:redis的持久化方式怎么使用
鏈接分享:http://weahome.cn/article/jjoihp.html