2.Redis 持久化

redis作為一個(gè)內(nèi)存數(shù)據(jù)庫(kù) 高QPS每秒查詢率(Query Per Second) 是它的特點(diǎn)呈枉。
它的數(shù)據(jù)持久化有兩種策略场躯。
1疤祭、RDB
2、AOF

RDB的特性如下:

fork一個(gè)進(jìn)程茵瘾,遍歷hash table礼华,利用copy on write,把整個(gè)db dump保存下來(lái)拗秘。
save, shutdown, slave 命令會(huì)觸發(fā)這個(gè)操作圣絮。
粒度比較大,如果save, shutdown, slave 之前crash了雕旨,則中間的操作沒(méi)辦法恢復(fù)扮匠。

AOF有如下特性:

把寫操作指令,持續(xù)的寫到一個(gè)類似日志文件里凡涩。(類似于從postgresql等數(shù)據(jù)庫(kù)導(dǎo)出sql一樣棒搜,只記錄寫操作)
粒度較小,crash之后活箕,只有crash之前沒(méi)有來(lái)得及做日志的操作沒(méi)辦法恢復(fù)力麸。

具體配置:

在redis.conf的配置文件中,應(yīng)當(dāng)視需求適當(dāng)配置redis

RDB的配置相關(guān)

################################ SNAPSHOTTING  ################################
1、save指令觸發(fā)的條件
save 900 1           #15分鐘有一個(gè)key修改就觸發(fā)save
save 300 10         #5分鐘有十個(gè)key修改就觸發(fā)save
save 60 10000     #1分鐘有一萬(wàn)個(gè)key修改就觸發(fā)save

2育韩、stop-writes-on-bgsave-error yes/no (默認(rèn)值為yes)
即當(dāng)bgsave快照操作出錯(cuò)時(shí)停止寫數(shù)據(jù)到磁盤末盔,這樣后面寫錯(cuò)做均會(huì)失敗,為了不影響后續(xù)寫操作座慰,故需將該項(xiàng)值改為no 

3陨舱、rdbcompression yes/no  
指定存儲(chǔ)至本地?cái)?shù)據(jù)庫(kù)時(shí)是否壓縮數(shù)據(jù),默認(rèn)是yes版仔,redis采用LZF壓縮游盲,如果為了節(jié)省CPU時(shí)間可以改成no 但會(huì)導(dǎo)致數(shù)據(jù)庫(kù)文件扁的巨大

4、rdbchecksum yes/no
對(duì)rdb數(shù)據(jù)進(jìn)行校驗(yàn),耗費(fèi)CPU資源,默認(rèn)為yes

5蛮粮、dbfilename dump.rdb
備份文件名稱

6益缎、dir ./
備份文件存放的地址

AOF 配置相關(guān)

############################## APPEND ONLY MODE ###############################

1、appendonly yes/no
是否開啟AOF的持久化方式

2然想、appendfilename "appendonly.aof"
備份文件的名稱

3莺奔、備份規(guī)則
appendfsync always #每次寫一條記錄都會(huì)備份到日志中寫道磁盤上。性能會(huì)降低很多 但是可以確保記錄不丟失
appendfsync everysec #每一秒鐘將OS cache中的數(shù)據(jù)fsync到磁盤上变泄。性能比較好令哟。建議使用的規(guī)則
appendfsync no #只把數(shù)據(jù)寫道os cache ,與操作系統(tǒng)來(lái)決定什么時(shí)候同步到磁盤妨蛹。性能最高屏富。但是不確定什么時(shí)候持久化大磁盤。不可控蛙卤。

4狠半、no-appendfsync-on-rewrite yes/no 一般為了保證數(shù)據(jù)完整不丟失都會(huì)設(shè)置為no

因?yàn)榉?wù)器的內(nèi)存有限噩死,redis可以存放的數(shù)據(jù)也是有限的。有些數(shù)據(jù)可能會(huì)自動(dòng)過(guò)期 或者別操作刪除掉神年,
但是寫日志并沒(méi)有被清理掉已维。導(dǎo)致這些數(shù)據(jù)會(huì)被恢復(fù)或者aof的文件會(huì)越來(lái)越大。
redis為了處理這個(gè)問(wèn)題會(huì)每隔一段時(shí)間在后臺(tái)基于當(dāng)前redis中的數(shù)據(jù)重新寫一次aof日志文件已日,覆蓋之前的文件垛耳。
rewritef操作和主進(jìn)程寫aof文件的操作,兩者都會(huì)操作磁盤捂敌,而bgrewriteaof往往會(huì)涉及大量磁盤操作艾扮,這樣就會(huì)造成主進(jìn)程在寫aof文件的時(shí)候出現(xiàn)阻塞的情形,現(xiàn)在no-appendfsync-on-rewrite參數(shù)出場(chǎng)了占婉。
如果該參數(shù)設(shè)置為no泡嘴,是最安全的方式,不會(huì)丟失數(shù)據(jù)逆济,但是要忍受阻塞的問(wèn)題酌予。如果設(shè)置為yes呢?這就相當(dāng)于將appendfsync設(shè)置為no奖慌,這說(shuō)明并沒(méi)有執(zhí)行磁盤操作抛虫,只是寫入了緩沖區(qū),因此這樣并不會(huì)造成阻塞(因?yàn)闆](méi)有競(jìng)爭(zhēng)磁盤)简僧,但是如果這個(gè)時(shí)候redis掛掉建椰,就會(huì)丟失數(shù)據(jù)。丟失多少數(shù)據(jù)呢岛马?在linux的操作系統(tǒng)的默認(rèn)設(shè)置下棉姐,最多會(huì)丟失30s的數(shù)據(jù)。


5啦逆、auto-aof-rewrite-percentage 100
aof文件增長(zhǎng)比例伞矩,指當(dāng)前aof文件比上次重寫的增長(zhǎng)比例大小。aof重寫即在aof文件在一定大小之后夏志,重新將整個(gè)內(nèi)存寫到aof文件當(dāng)中乃坤,。這樣就避免了沟蔑,aof文件過(guò)大而實(shí)際內(nèi)存數(shù)據(jù)小的問(wèn)題(頻繁修改數(shù)據(jù)問(wèn)題).

6湿诊、auto-aof-rewrite-min-size 64mb
aof文件重寫最小的文件大小,即最開始aof文件必須要達(dá)到這個(gè)文件大小時(shí)才觸發(fā)溉贿,后面的每次重寫就不會(huì)根據(jù)這個(gè)變量了(根據(jù)上一次重寫完成之后的大小).此變量?jī)H初始化啟動(dòng)redis有效.如果是redis恢復(fù)時(shí)枫吧,則lastSize等于初始aof文件大小.


7、aof-load-truncated yes/no
指redis在恢復(fù)時(shí)宇色,會(huì)忽略最后一條可能存在問(wèn)題的指令。默認(rèn)值yes。即在aof寫入時(shí)宣蠕,可能存在指令寫錯(cuò)的問(wèn)題(突然斷電例隆,寫了一半),這種情況下抢蚀,yes會(huì)log并繼續(xù)镀层,而no會(huì)直接恢復(fù)失敗.

如果 RDB 和AOF 同時(shí)工作

1.如果RDB在執(zhí)行snapshotting操作,那AOF不會(huì)rewrite皿曲。如果AOF不會(huì)rewrite唱逢,那RDB不會(huì)進(jìn)行snapshotting操作。
2.RDB在執(zhí)行snapshotting操作屋休,如果用戶執(zhí)行了rewrite aof的命令坞古, 那redis會(huì)在RDB執(zhí)行完成后在執(zhí)行rewrite。
3.如果有RDB snapshot文件 和AOF 日志同時(shí)存在劫樟,redis在恢復(fù)數(shù)據(jù)的時(shí)候默認(rèn)使用aof痪枫,因?yàn)槿罩靖暾?/p>

如果AOF的文件受損了

執(zhí)行 redis-check-aof --fix 來(lái)修復(fù)受損的aof文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市叠艳,隨后出現(xiàn)的幾起案子奶陈,更是在濱河造成了極大的恐慌,老刑警劉巖附较,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吃粒,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拒课,警方通過(guò)查閱死者的電腦和手機(jī)徐勃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)捕发,“玉大人疏旨,你說(shuō)我怎么就攤上這事≡幔” “怎么了檐涝?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)法挨。 經(jīng)常有香客問(wèn)我谁榜,道長(zhǎng),這世上最難降的妖魔是什么凡纳? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任窃植,我火速辦了婚禮,結(jié)果婚禮上荐糜,老公的妹妹穿的比我還像新娘巷怜。我一直安慰自己葛超,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布延塑。 她就那樣靜靜地躺著绣张,像睡著了一般。 火紅的嫁衣襯著肌膚如雪关带。 梳的紋絲不亂的頭發(fā)上侥涵,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音宋雏,去河邊找鬼芜飘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磨总,可吹牛的內(nèi)容都是我干的嗦明。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼舍败,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼招狸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起邻薯,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤裙戏,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后厕诡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體累榜,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年灵嫌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壹罚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寿羞,死狀恐怖猖凛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绪穆,我是刑警寧澤辨泳,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站玖院,受9級(jí)特大地震影響菠红,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜难菌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一试溯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧郊酒,春花似錦遇绞、人聲如沸键袱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杠纵。三九已至荠耽,卻和暖如春钩骇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铝量。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工倘屹, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慢叨。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓纽匙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拍谐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子烛缔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 企業(yè)級(jí)redis集群架構(gòu)的特點(diǎn) 海量數(shù)據(jù) 高并發(fā) 高可用 要達(dá)到高可用,持久化是不可減少的轩拨,持久化主要是做災(zāi)難恢復(fù)...
    lucode閱讀 2,207評(píng)論 0 7
  • 一践瓷、Redis高可用概述 在介紹Redis高可用之前,先說(shuō)明一下在Redis的語(yǔ)境中高可用的含義亡蓉。 我們知道晕翠,在w...
    空語(yǔ)閱讀 1,597評(píng)論 0 2
  • redis的 rdb 和 aof 持久化的區(qū)別 aof,rdb是兩種 redis持久化的機(jī)制砍濒。用于crash后淋肾,r...
    可可西里的星星閱讀 346評(píng)論 0 0
  • 刻意練習(xí)才能成為最好的自己,很多人之所以平凡無(wú)過(guò)人之技爸邢,就是因?yàn)椴欢每桃馊ゾ毩?xí)樊卓,每天只是重復(fù)著做同樣的事。如果我...
    5f0e19fd01d0閱讀 130評(píng)論 1 1
  • 夜晚很深杠河,可是這個(gè)城市還沒(méi)睡碌尔,我也還沒(méi)睡,一個(gè)人窩在沙發(fā)的角落里感猛,獨(dú)自失眠七扰,沒(méi)有緣由的孤寂,發(fā)現(xiàn)只有自己...
    失憶的風(fēng)閱讀 292評(píng)論 0 0