免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

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

加載數(shù)據(jù):

根據(jù)配置的不同,Redis加載數(shù)據(jù)的源也不一樣,如果在配置文件里設(shè)置了appendonly yes(默認是no),那么就從appendfile加載數(shù)據(jù),反之則從RedisDb加載數(shù)據(jù)

 
·從appendfile加載數(shù)據(jù):我們先來看一下appendfile的內(nèi)容是什么。下面的一條記錄摘取自appendfile:SET $9 olylakers $3 oly。很顯,appendfile保存的就是redis server接收到的各種命令,那么從appendfile加載數(shù)據(jù)就是redis server從appenfile里面讀取這些命令的記錄,然后重新把這些命令執(zhí)行一遍即可。需要注意的是,如果開啟了VM,那么在從appendfile加載數(shù)據(jù)的時候可能要涉及swap操作。
·從redisdb加載數(shù)據(jù):如果沒有開啟appendonly,那么則需要從db file加載數(shù)據(jù)到內(nèi)存,其過程是:
1.通過處理select命令,選擇DB
2.然后從db file讀取key和value
3.檢查key是否過期,如果過期則跳過這個key,如果不過期,則把數(shù)據(jù)Add到對應(yīng)的db的dict中
4.如果開啟了VM,則從db file中l(wèi)oad數(shù)據(jù),也可能涉及到swap操作
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Redis數(shù)據(jù)備份與恢復(fù)
Redis作者:深度剖析Redis持久化
redis持久化
解密Redis持久化
redis系列
8)詳解 Redis 的配置文件以及數(shù)據(jù)持久化
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服