Redis RDB說明和實(shí)際操作

目錄:
1、什么是RDB
2棵介、觸發(fā)機(jī)制-主要三種方式
3钉鸯、觸發(fā)機(jī)制-不容忽略方式
4、試驗(yàn)

1邮辽、什么是RDB

Redis是在內(nèi)存中的唠雕,RDB存儲在硬盤中。RDB持久化就是redis通過一條命令將redis內(nèi)存中的數(shù)據(jù)完整的生成一個(gè)快照保存到硬盤中吨述,就是一個(gè)RDB文件(二進(jìn)制保存)岩睁。當(dāng)我們需要恢復(fù)Redis,可以加載這個(gè)RDB文件將某時(shí)某刻的一個(gè)RDB備份文件恢復(fù)到Redis中

什么是RDB

2揣云、觸發(fā)機(jī)制-主要三種方式(save捕儒、bgsave、自動)

  • save(同步)

    save是一條同步的命令邓夕,就是說在它執(zhí)行這個(gè)命令之前其他的所有命令都需要去排隊(duì)等到它執(zhí)行之后再執(zhí)行其它命令


    save命令

    文件策略及復(fù)雜度
  • bgsave(異步)

bgsave 異步命令刘莹,表示執(zhí)行完該命令之后會立刻返回OK,然后在后頭單獨(dú)開啟一個(gè)線程去執(zhí)行


bgsave過程

  • save和bgsave的區(qū)別
命令 save bgsave
IO阻塞 同步 異步
阻塞焚刚? 是(阻塞發(fā)生在fork)
復(fù)雜度 O(n) O(n)
優(yōu)點(diǎn) 不會消耗額外內(nèi)存 不阻塞客戶端命令
缺點(diǎn) 阻塞客戶端命令 需要fork点弯,消耗內(nèi)存
  • 自動生成RDB
自動生成RDB

其實(shí)這樣的自動生成并不好,因?yàn)槲覀儫o法控制生成RDB文件的頻率或者說它生成RDB文件的頻率太高了矿咕。另外內(nèi)存中的數(shù)據(jù)寫一個(gè)快照到硬盤中抢肛,如果這個(gè)文件非常大的話或者說很頻繁去做這個(gè)操作的話狼钮,肯定會對硬盤有一定的壓力而且生成的一個(gè)規(guī)則也不太好控制,因?yàn)閷懭肓课覀儫o法控制捡絮,所以說這種其實(shí)不是一種很好的方式燃领。

最佳配置

3、觸發(fā)機(jī)制-不容忽略方式

1锦援、全量復(fù)制
    主從要進(jìn)行復(fù)制的時(shí)候猛蔽,主會自動生成RDB文件
2、debug reload
    debug重啟灵寺,不會將內(nèi)存清空的重啟曼库,會觸發(fā)RDB文件的生產(chǎn)
3、shutdown

4略板、試驗(yàn)

1毁枯、save命令是否真正的阻塞
2、bgsave fork的過程
3叮称、自動配置的save是否真的有效
4种玛、RDB長啥樣

實(shí)際操作

1、找到配置文件瓤檐,修改配置文件赂韵。因?yàn)閞edis一般都會做集群,所以pidfile挠蛉,logfile祭示,dbfilename 最好加上再多加上機(jī)器名或者別的作為區(qū)別區(qū)分。 我這邊是在本地測試谴古,所以以端口做區(qū)分质涛。

daemonize yes
pidfile /var/run/redis-6379.pid
logfile “6379.log”
dbfilename dump-6379.rdb
dir /Users/apple/data/redis/redis/data
#注釋掉
#save 900 1
#save 300 10
#save 60 1000

2、
往redis批量新增600w條數(shù)據(jù)進(jìn)行測試掰担,加入這么都數(shù)據(jù)是因?yàn)闇y試save的阻塞效果汇陆,在執(zhí)行save命令時(shí),其他命令會在其后面阻塞带饱,直至save命令執(zhí)行完毡代,后面的命令才能進(jìn)行執(zhí)行


3、執(zhí)行save命令纠炮,然后再執(zhí)行別的命令時(shí)月趟,會停頓灯蝴,直至save命令結(jié)束才會返回結(jié)果恢口,這里不好演示就不展示了



這時(shí)候rdb文件會生成到之前配置的dir的目錄下


4、bgsave命令操作



這里看出來fork出來了一個(gè)線程執(zhí)行bgsave



日志中也可查看bgsave命令的執(zhí)行情況

5穷躁、配置save 條件 自動執(zhí)行save 命令進(jìn)行rdb文件生成
因?yàn)殡S便滿足一個(gè)就會觸發(fā)耕肩,所以我們這里演示開啟的表示 60s 發(fā)生5次change因妇,就會自動的rdb文件生成。



我們在60秒內(nèi)觸發(fā)5次change猿诸,則會自動生成rdb文件



5婚被、RDB總結(jié)

  • RDB是Redis內(nèi)存到硬盤的快照,用于持久化
  • save通常會阻塞Redis
  • bgsave不會阻塞Redis梳虽,但會fork新進(jìn)程
  • save自動配置滿足任一就會被執(zhí)行
  • 有些觸發(fā)機(jī)制不容忽視
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末址芯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子窜觉,更是在濱河造成了極大的恐慌谷炸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禀挫,死亡現(xiàn)場離奇詭異旬陡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)语婴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門描孟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人砰左,你說我怎么就攤上這事匿醒。” “怎么了缠导?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵青抛,是天一觀的道長。 經(jīng)常有香客問我酬核,道長蜜另,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任嫡意,我火速辦了婚禮举瑰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蔬螟。我一直安慰自己此迅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布旧巾。 她就那樣靜靜地躺著耸序,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲁猩。 梳的紋絲不亂的頭發(fā)上坎怪,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音廓握,去河邊找鬼搅窿。 笑死嘁酿,一個(gè)胖子當(dāng)著我的面吹牛前弯,可吹牛的內(nèi)容都是我干的醉者。 我是一名探鬼主播蝶防,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼备燃,長吁一口氣:“原來是場噩夢啊……” “哼渊抄!你這毒婦竟也來了猛拴?” 一聲冷哼從身側(cè)響起桩皿,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤股缸,失蹤者是張志新(化名)和其女友劉穎耐朴,沒想到半個(gè)月后众弓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隔箍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年谓娃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜒滩。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滨达,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俯艰,到底是詐尸還是另有隱情捡遍,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布竹握,位于F島的核電站画株,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏啦辐。R本人自食惡果不足惜谓传,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望芹关。 院中可真熱鬧续挟,春花似錦、人聲如沸侥衬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轴总。三九已至直颅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間怀樟,已是汗流浹背功偿。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漂佩,地道東北人脖含。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓罪塔,卻偏偏與公主長得像投蝉,于是被迫代替她去往敵國和親养葵。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

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

  • 前言 在上一篇文章中瘩缆,介紹了Redis內(nèi)存模型关拒,從這篇文章開始,將依次介紹Redis高可用相關(guān)的知識——持久化庸娱、復(fù)...
    Java架構(gòu)閱讀 2,314評論 3 21
  • 一着绊、Redis高可用概述 在介紹Redis高可用之前,先說明一下在Redis的語境中高可用的含義熟尉。 我們知道归露,在w...
    空語閱讀 1,597評論 0 2
  • 企業(yè)級redis集群架構(gòu)的特點(diǎn) 海量數(shù)據(jù) 高并發(fā) 高可用 要達(dá)到高可用,持久化是不可減少的斤儿,持久化主要是做災(zāi)難恢復(fù)...
    lucode閱讀 2,206評論 0 7
  • 前言: Redis是一個(gè)鍵值對數(shù)據(jù)庫服務(wù)器剧包,因?yàn)樗莾?nèi)存數(shù)據(jù)庫,它將數(shù)據(jù)都保存在內(nèi)存里面往果,所以如果不想辦法進(jìn)行持久...
    但時(shí)間也偷換概念閱讀 1,307評論 0 6
  • 【本教程目錄】 1.redis是什么2.redis的作者3.誰在使用redis4.學(xué)會安裝redis5.學(xué)會啟動r...
    徐猿猿閱讀 1,869評論 0 35