日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

redis宕機(jī)和過(guò)期 Redis策略如何保障服務(wù)器宕機(jī)或重啟

redis宕機(jī)和過(guò)期 Redis策略如何保障服務(wù)器宕機(jī)或重啟?我們?cè)谑褂秒娔X的時(shí)候,難免會(huì)遇到計(jì)算機(jī)宕機(jī)的情況服務(wù)器宕機(jī)是計(jì)算機(jī)術(shù)語(yǔ),口語(yǔ)叫“down機(jī)”是指操作系統(tǒng)無(wú)法從一個(gè)嚴(yán)重系統(tǒng)錯(cuò)誤中恢復(fù)過(guò)來(lái),或系統(tǒng)硬件層面出問(wèn)題,導(dǎo)致電腦或者服務(wù)器不能正常工作,而不得不重新啟動(dòng)計(jì)算機(jī)的現(xiàn)象這個(gè)時(shí)候redis持久化機(jī)制就起到了作用,我來(lái)為大家科普一下關(guān)于redis宕機(jī)和過(guò)期 Redis策略如何保障服務(wù)器宕機(jī)或重啟?下面希望有你要的答案,我們一起來(lái)看看吧!

redis宕機(jī)和過(guò)期 Redis策略如何保障服務(wù)器宕機(jī)或重啟


redis宕機(jī)和過(guò)期 Redis策略如何保障服務(wù)器宕機(jī)或重啟我們?cè)谑褂秒娔X的時(shí)候,難免會(huì)遇到計(jì)算機(jī)宕機(jī)的情況 。服務(wù)器宕機(jī)是計(jì)算機(jī)術(shù)語(yǔ),口語(yǔ)叫“down機(jī)”是指操作系統(tǒng)無(wú)法從一個(gè)嚴(yán)重系統(tǒng)錯(cuò)誤中恢復(fù)過(guò)來(lái),或系統(tǒng)硬件層面出問(wèn)題,導(dǎo)致電腦或者服務(wù)器不能正常工作,而不得不重新啟動(dòng)計(jì)算機(jī)的現(xiàn)象 。這個(gè)時(shí)候redis持久化機(jī)制就起到了作用 。
那么Redis是如何保障服務(wù)器宕機(jī)或重啟呢?我們一起來(lái)看一看吧!
Redis 的持久化策略有兩種:RDB(快照全量持久化)和AOF(增量日志持久化)
1、 RDB
RDB 是 Redis 默認(rèn)的持久化方案 。RDB快照(Redis DataBase),當(dāng)觸發(fā)一定條件的時(shí)候,會(huì)把當(dāng)前內(nèi)存中的數(shù)據(jù)寫入磁盤,生成一個(gè)快照文件dump.rdb 。Redis重啟會(huì)通過(guò)dump.rdb文件恢復(fù)數(shù)據(jù) 。那那個(gè)一定的條件是啥呢?到底什么時(shí)候?qū)懭雛db 文件?
觸發(fā)Redis執(zhí)行rdb的方式有兩類:自動(dòng)觸發(fā)和手動(dòng)觸發(fā) “自動(dòng)觸發(fā)”的情況有三種:達(dá)到配置文件觸發(fā)規(guī)則時(shí)觸發(fā)、執(zhí)行shutdown命令時(shí)觸發(fā)、執(zhí)行flushall命令時(shí)觸發(fā) 。
注:在redis.conf中有個(gè) SNAPSHOTTING配置,其中定義了觸發(fā)把數(shù)據(jù)保存到磁盤觸發(fā)頻率 。
“手動(dòng)觸發(fā)”的方式有兩種:執(zhí)行save 或 bgsave命令 。執(zhí)行save命令在生成快照的時(shí)候會(huì)阻塞當(dāng)前Redis服務(wù)器,Redis不能處理其他命令 。如果內(nèi)存中的數(shù)據(jù)比較多,會(huì)造成Redis長(zhǎng)時(shí)間的阻塞 。生產(chǎn)環(huán)境不建議使用這個(gè)命令 。
為了解決這個(gè)問(wèn)題,Redis 提供了第二種方式bgsave命令進(jìn)行數(shù)據(jù)備份,執(zhí)行bgsave時(shí),Redis會(huì)在后臺(tái)異步進(jìn)行快照操作,快照同時(shí)還可以響應(yīng)客戶端請(qǐng)求 。
具體操作是Redis進(jìn)程執(zhí)行fork(創(chuàng)建進(jìn)程函數(shù))操作創(chuàng)建子進(jìn)程(copy-on-write),RDB持久化過(guò)程由子進(jìn)程負(fù)責(zé),完成后自動(dòng)結(jié)束 。它不會(huì)記錄 fork 之后后續(xù)的命令 。阻塞只發(fā)生在fork階段,一般時(shí)間很短 。手動(dòng)觸發(fā)的場(chǎng)景一般僅用在遷移數(shù)據(jù)時(shí)才會(huì)用到 。
我們知道了RDB的實(shí)現(xiàn)的原理邏輯,那么我們就來(lái)分析下RDB到底有什么優(yōu)劣勢(shì) 。
優(yōu)勢(shì):
(1)RDB是一個(gè)非常緊湊(compact類型)的文件,它保存了redis在某個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)集 。這種文件非常適合用于進(jìn)行備份和災(zāi)難恢復(fù) 。
(2)生成RDB文件的時(shí)候,redis主進(jìn)程會(huì)fork()一個(gè)子進(jìn)程來(lái)處理所有保存工作,主進(jìn)程不需要進(jìn)行任何磁盤IO操作 。
(3)RDB在恢復(fù)大數(shù)據(jù)集時(shí)的速度比AOF的恢復(fù)速度要快 。
劣勢(shì):RDB方式數(shù)據(jù)沒(méi)辦法做到實(shí)時(shí)持久化/秒級(jí)持久化 。在一定間隔時(shí)間做一次備份,所以如果Redis意外down掉的話,就會(huì)丟失最后一次快照之后的所有修改
2、 AOF(Append Only File)
AOF采用日志的形式來(lái)記錄每個(gè)寫操作的命令,并追加到文件中 。開(kāi)啟后,執(zhí)行更改 Redis數(shù)據(jù)的命令時(shí),就會(huì)把命令寫入到AOF文件中 。Redis重啟時(shí)會(huì)根據(jù)日志文件的內(nèi)容把寫指令從前到后執(zhí)行一次以完成數(shù)據(jù)的恢復(fù)工作 。
其實(shí)AOF也不一定是完全實(shí)時(shí)的備份操作命令,在redis.conf 我們可以配置選擇 AOF的執(zhí)行方式,主要有三種:always、everysec和no

推薦閱讀