日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

redis的持久化存储,RDB与AOF

發(fā)布時(shí)間:2024/10/12 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis的持久化存储,RDB与AOF 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
redis持久化存儲(chǔ)支持兩種方式:RDB和AOF。RDB一定時(shí)間取存儲(chǔ)文件,AOF默認(rèn)每秒去存儲(chǔ)歷史命令,官方建議兩種方式同時(shí)使用 沒有持久化的redis和memcache一樣,相當(dāng)于一個(gè)純內(nèi)存的數(shù)據(jù)庫 一、RDB(Redis DataBase) RDB是將數(shù)據(jù)寫入一個(gè)臨時(shí)文件,持久化結(jié)束后,用這個(gè)臨時(shí)文件替換上次持久化的文件,達(dá)到數(shù)據(jù)恢復(fù)。 優(yōu)點(diǎn):使用單獨(dú)子進(jìn)程來進(jìn)行持久化,主進(jìn)程不會(huì)進(jìn)行任何IO操作,保證了redis的高性能 缺點(diǎn):RDB是間隔一段時(shí)間進(jìn)行持久化,如果持久化之間redis發(fā)生故障,會(huì)發(fā)生數(shù)據(jù)丟失。所以這種方式更適合數(shù)據(jù)要求不嚴(yán)謹(jǐn)?shù)臅r(shí)候 RDB默認(rèn)開啟,redis.conf中的具體配置參數(shù)如下; #dbfilename:持久化數(shù)據(jù)存儲(chǔ)在本地的文件 dbfilename dump.rdb #dir:持久化數(shù)據(jù)存儲(chǔ)在本地的路徑,如果是在/redis/redis-3.0.6/src下啟動(dòng)的redis-cli,則數(shù)據(jù)會(huì)存儲(chǔ)在當(dāng)前src目錄下 dir ./ #save時(shí)間,以下分別表示更改了1個(gè)key時(shí)間隔900s進(jìn)行持久化存儲(chǔ);更改了10個(gè)key300s進(jìn)行存儲(chǔ);更改10000個(gè)key60s進(jìn)行存儲(chǔ)。 save 900 1 save 300 10 save 60 10000 持久化過程: 當(dāng)滿足save的條件時(shí),比如更改了1個(gè)key,900s后會(huì)將數(shù)據(jù)寫入臨時(shí)文件,持久化完成后將臨時(shí)文件替換舊的dump.rdb。(存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)是到觸發(fā)時(shí)間時(shí)的的節(jié)點(diǎn)) 使用RDB恢復(fù)數(shù)據(jù): 自動(dòng)的持久化數(shù)據(jù)存儲(chǔ)到dump.rdb后。實(shí)際只要重啟redis服務(wù)即可完成(啟動(dòng)redis的server時(shí)會(huì)從dump.rdb中先同步數(shù)據(jù)) 使用命令進(jìn)行持久化save存儲(chǔ): ./redis-cli -h ip -p port save ./redis-cli -h ip -p port bgsave 一個(gè)是在前臺(tái)進(jìn)行存儲(chǔ),一個(gè)是在后臺(tái)進(jìn)行存儲(chǔ)。我的client就在server這臺(tái)服務(wù)器上,所以不需要連其他機(jī)器,直接./redis-cli bgsave AOF是將執(zhí)行過的指令記錄下來,數(shù)據(jù)恢復(fù)時(shí)按照從前到后的順序再將指令執(zhí)行一遍,實(shí)現(xiàn)數(shù)據(jù)恢復(fù) 優(yōu)點(diǎn):可以保持更高的數(shù)據(jù)完整性,如果設(shè)置追加file的時(shí)間是1s,如果redis發(fā)生故障,最多會(huì)丟失1s的數(shù)據(jù);且如果日志寫入不完整支持redis-check-aof來進(jìn)行日志修復(fù);AOF文件沒被rewrite之前(文件過大時(shí)會(huì)對命令進(jìn)行合并重寫),可以刪除其中的某些命令(比如誤操作的flushall)。 缺點(diǎn):AOF文件比RDB文件大,且恢復(fù)速度慢。 AOF默認(rèn)關(guān)閉,開啟方法,修改配置文件reds.conf:appendonly yes 其他相關(guān)配置項(xiàng): #AOF保存的文件名 appendfilename "" 以下為同步方式相關(guān)的配置: #一旦插入命令,立即同步到磁盤,保證了完全的持久化,但是速度慢,不推薦 appendfsync always #AOF每秒進(jìn)行同步 appendfsync everysec #不自動(dòng)同步,性能最好,但是持久化沒有保證 appendfsync no 存儲(chǔ)過程:將快照內(nèi)容以命令的形式追加到AOF文件中,所以隨著追加AOF文件會(huì)越來越大 保存的AOF文件存儲(chǔ)了執(zhí)行的所有命令,所以可以進(jìn)行修改文件來撤銷輸錯(cuò)的命令(在重寫之前,如果重寫了就沒有辦法了) 針對AOF文件越來越大的問題,可以對AOF文件進(jìn)行重寫,命令如下: redis-cli -h ip -p port bgrewriteaof 重寫命令的操作過程:在當(dāng)前的快照保存工作結(jié)束后,開啟一個(gè)子進(jìn)程,將AOF文件進(jìn)行重寫,合并set命令等操作到一個(gè)臨時(shí)文件,達(dá)到縮小文件大小的目的。重寫結(jié)束后后將臨時(shí)文件替換為新的AOF文件(重寫過程中如果有新的redis操作命令,會(huì)提交到緩存中,重寫結(jié)束后追加到AOF文件內(nèi)) 說明:redis2.4以上版本,重寫機(jī)制自動(dòng)觸發(fā)。觸發(fā)的相關(guān)redis.conf配置如下: auto-aof-rewrite-percentage 100(當(dāng)目前的AOF文件大小超過上一次重寫文件大小的百分之幾時(shí)進(jìn)行重寫,如果沒有重啟過,則以啟動(dòng)時(shí)的AOF文件大小為依據(jù)); auto-aof-rewrite-min-size 64mb(允許重寫的最小AOF文件大小); 數(shù)據(jù)恢復(fù): 重啟redis服務(wù),前提是配置文件必須設(shè)置了appendonly yes,然后會(huì)從appendfile的文件加載文件。反之是從RDB中加載數(shù)據(jù)的。

轉(zhuǎn)載于:https://www.cnblogs.com/wrqysrt/p/10919947.html

總結(jié)

以上是生活随笔為你收集整理的redis的持久化存储,RDB与AOF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。