redis——持久化

一泰鸡、持久化之全量寫入:RDB

[redis@6381]$ more /usr/local/redis/conf/redis.conf

save 900 1

save 300 10

save 60 10000

dbfilename "dump.rdb"          #持久化文件名稱

dir "/data/dbs/redis/6381"    #持久化數(shù)據(jù)文件存放的路徑

上面是redis配置文件里默認(rèn)的RDB持久化設(shè)置滞乙,前三行都是對(duì)觸發(fā)RDB的一個(gè)條件奏纪,例如第一行的意思是每900秒鐘里redis數(shù)據(jù)庫有一條數(shù)據(jù)被修改則觸發(fā)RDB,依次類推斩启;只要有一條滿足就會(huì)調(diào)用BGSAVE進(jìn)行RDB持久化序调。第四行dbfilename指定了把內(nèi)存里的數(shù)據(jù)庫寫入本地文件的名稱,該文件是進(jìn)行壓縮后的二進(jìn)制文件兔簇,通過該文件可以把數(shù)據(jù)庫還原到生成該文件時(shí)數(shù)據(jù)庫的狀態(tài)炕置。第五行dir指定了RDB文件存放的目錄。

  配置文件修改需要重啟redis服務(wù)男韧,我們還可以在命令行里進(jìn)行配置朴摊,即時(shí)生效,服務(wù)器重啟后需重新配置
[redis@iZ254r8s3m6Z redis]$ bin/redis-cli

127.0.0.1:6379> CONFIG GET save        #查看redis持久化配置

1) "save"

2) "900 1 300 10 60 10000"

127.0.0.1:6379> CONFIG SET save "21600 1000" #修改redis持久化配置

OK

而RDB持久化也分兩種:SAVE和BGSAVE

  SAVE是阻塞式的RDB持久化此虑,當(dāng)執(zhí)行這個(gè)命令時(shí)redis的主進(jìn)程把內(nèi)存里的數(shù)據(jù)庫狀態(tài)寫入到RDB文件(即上面的dump.rdb)中甚纲,直到該文件創(chuàng)建完畢的這段時(shí)間內(nèi)redis將不能處理任何命令請(qǐng)求。
  BGSAVE屬于非阻塞式的持久化朦前,它會(huì)創(chuàng)建一個(gè)子進(jìn)程專門去把內(nèi)存中的數(shù)據(jù)庫狀態(tài)寫入RDB文件里介杆,同時(shí)主進(jìn)程還可以處理來自客戶端的命令請(qǐng)求。但子進(jìn)程基本是復(fù)制的父進(jìn)程韭寸,這等于兩個(gè)相同大小的redis進(jìn)程在系統(tǒng)上運(yùn)行春哨,會(huì)造成內(nèi)存使用率的大幅增加。

(本人在生產(chǎn)中就碰到過這問題恩伺,redis本身內(nèi)存使用率就60%赴背,總的內(nèi)存使用率在百分之七八十左右,持久化的時(shí)候立馬飆到百分之一百三十多,告警郵件是每天幾十封/(ㄒoㄒ)/~~ 最后根據(jù)需求選擇了AOF持久化)

   二凰荚、持久化之增量寫入:AOF

   與RDB的保存整個(gè)redis數(shù)據(jù)庫狀態(tài)不同燃观,AOF是通過保存對(duì)redis服務(wù)端的寫命令(如set、sadd便瑟、rpush)來記錄數(shù)據(jù)庫狀態(tài)的缆毁,即保存你對(duì)redis數(shù)據(jù)庫的寫操作,以下就是AOF文件的內(nèi)容
[redis@iZ]$ more appendonly.aof

*2

$6

SELECT

$1

0

*3

$3

SET

$47

DEV_USER_LEGAL_F9683BE0E27F1A06C0CB869CEC7E3B22

$11

?

*3

$3

SET

$47

先讓我們看看如何配置AOF

[redis@iZ]$ more ~/redis/conf/redis.conf

dir "/data/dbs/redis/6381"          #AOF文件存放目錄

appendonly yes                      #開啟AOF持久化到涂,默認(rèn)關(guān)閉

appendfilename "appendonly.aof"      #AOF文件名稱(默認(rèn))

appendfsync no                      #AOF持久化策略

auto-aof-rewrite-percentage 100      #觸發(fā)AOF文件重寫的條件(默認(rèn))

auto-aof-rewrite-min-size 64mb      #觸發(fā)AOF文件重寫的條件(默認(rèn))

appendfsync有三個(gè)選項(xiàng):always脊框、everysec和no:

1、選擇always的時(shí)候服務(wù)器會(huì)在每執(zhí)行一個(gè)事件就把AOF緩沖區(qū)的內(nèi)容強(qiáng)制性的寫入硬盤上的AOF文件里践啄,可以看成你每執(zhí)行一個(gè)redis寫入命令就往AOF文件里記錄這條命令缚陷,這保證了數(shù)據(jù)持久化的完整性,但效率是最慢的往核,卻也是最安全的箫爷;
2、配置成everysec的話服務(wù)端每執(zhí)行一次寫操作(如set聂儒、sadd虎锚、rpush)也會(huì)把該條命令追加到一個(gè)單獨(dú)的AOF緩沖區(qū)的末尾,并將AOF緩沖區(qū)寫入AOF文件衩婚,然后每隔一秒才會(huì)進(jìn)行一次文件同步把內(nèi)存緩沖區(qū)里的AOF緩存數(shù)據(jù)真正寫入AOF文件里窜护,這個(gè)模式兼顧了效率的同時(shí)也保證了數(shù)據(jù)的完整性,即使在服務(wù)器宕機(jī)也只會(huì)丟失一秒內(nèi)對(duì)redis數(shù)據(jù)庫做的修改非春;
3柱徙、將appendfsync配置成no則意味redis數(shù)據(jù)庫里的數(shù)據(jù)就算丟失你也可以接受,它也會(huì)把每條寫命令追加到AOF緩沖區(qū)的末尾奇昙,然后寫入文件护侮,但什么時(shí)候進(jìn)行文件同步真正把數(shù)據(jù)寫入AOF文件里則由系統(tǒng)自身決定,即當(dāng)內(nèi)存緩沖區(qū)的空間被填滿或者是超過了設(shè)定的時(shí)限后系統(tǒng)自動(dòng)同步储耐。這種模式下效率是最快的羊初,但對(duì)數(shù)據(jù)來說也是最不安全的,如果redis里的數(shù)據(jù)都是從后臺(tái)數(shù)據(jù)庫如mysql中取出來的什湘,屬于隨時(shí)可以找回或者不重要的數(shù)據(jù)长赞,那么可以考慮設(shè)置成這種模式。

redis如何關(guān)閉持久化
如何關(guān)閉redis持久化闽撤?我的需求是只把redis當(dāng)作緩存來用得哆,所以持久化到硬盤對(duì)我的需求來說沒有意義。

修改redis配置文件哟旗,redis.conf 第115行左右贩据。

1.注釋掉原來的持久化規(guī)則

#save 900 1

#save 300 10

#save 60 10000

2.設(shè)置為空

save ""

然后重啟redis服務(wù)即可栋操。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市乐设,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绎巨,老刑警劉巖近尚,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異场勤,居然都是意外死亡戈锻,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門和媳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來格遭,“玉大人,你說我怎么就攤上這事留瞳【苎福” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵她倘,是天一觀的道長璧微。 經(jīng)常有香客問我,道長硬梁,這世上最難降的妖魔是什么前硫? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮荧止,結(jié)果婚禮上屹电,老公的妹妹穿的比我還像新娘。我一直安慰自己跃巡,他們只是感情好危号,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著素邪,像睡著了一般葱色。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娘香,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天苍狰,我揣著相機(jī)與錄音,去河邊找鬼烘绽。 笑死淋昭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的安接。 我是一名探鬼主播翔忽,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了歇式?” 一聲冷哼從身側(cè)響起驶悟,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎材失,沒想到半個(gè)月后痕鳍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡龙巨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年笼呆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旨别。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诗赌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秸弛,到底是詐尸還是另有隱情铭若,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布递览,位于F島的核電站奥喻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏非迹。R本人自食惡果不足惜环鲤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憎兽。 院中可真熱鬧冷离,春花似錦、人聲如沸纯命。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亿汞。三九已至瞭空,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗我,已是汗流浹背咆畏。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吴裤,地道東北人旧找。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像麦牺,于是被迫代替她去往敵國和親钮蛛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鞭缭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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