中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè) 推廣 公司官網(wǎng)整站優(yōu)化

網(wǎng)站建設(shè) 推廣 公司,官網(wǎng)整站優(yōu)化,義務(wù)網(wǎng)網(wǎng)站建設(shè)方案,做網(wǎng)絡(luò)投票網(wǎng)站好做嗎個(gè)人主頁(yè) : 個(gè)人主頁(yè) 個(gè)人專(zhuān)欄 : 《數(shù)據(jù)結(jié)構(gòu)》 《C語(yǔ)言》《C》《Linux》《網(wǎng)絡(luò)》 《redis學(xué)習(xí)筆記》 文章目錄 前言RDBAOF總結(jié) 前言 redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),把數(shù)據(jù)存儲(chǔ)在內(nèi)存中的,而內(nèi)存中的數(shù)據(jù)是不持久的,要想能夠做…

在這里插入圖片描述

個(gè)人主頁(yè) : 個(gè)人主頁(yè)
個(gè)人專(zhuān)欄 : 《數(shù)據(jù)結(jié)構(gòu)》 《C語(yǔ)言》《C++》《Linux》《網(wǎng)絡(luò)》 《redis學(xué)習(xí)筆記》

文章目錄

  • 前言
  • RDB
  • AOF
  • 總結(jié)


前言

redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),把數(shù)據(jù)存儲(chǔ)在內(nèi)存中的,而內(nèi)存中的數(shù)據(jù)是不持久的,要想能夠做到持久,就需要讓redis把數(shù)據(jù)存儲(chǔ)到硬盤(pán)上。但redis相比于mysql這樣的關(guān)系型數(shù)據(jù)庫(kù),最明顯的特點(diǎn)就是效率高,速度快。這樣便導(dǎo)致redis為了保證速度快,數(shù)據(jù)要存儲(chǔ)在內(nèi)存中,又為了持久化,數(shù)據(jù)要存儲(chǔ)到硬盤(pán)中;
當(dāng)要插入一個(gè)新的數(shù)據(jù)時(shí),需要把這個(gè)數(shù)據(jù),“同時(shí)”寫(xiě)入到內(nèi)存和硬盤(pán);當(dāng)要查詢(xún)某個(gè)數(shù)據(jù)時(shí),直接從內(nèi)存讀取;硬盤(pán)數(shù)據(jù)只是在redis重啟的時(shí)候,用來(lái)恢復(fù)內(nèi)存中的數(shù)據(jù)的。


redis支持RDB(Redis DataBase)和AOF(Append Only File)兩種持久化機(jī)制

RDB

RDB定期的把redis內(nèi)存中的所有數(shù)據(jù),都給寫(xiě)入硬盤(pán)中,生成一個(gè)快照;之后redis一旦重啟,就可以根據(jù)剛才的快照,把內(nèi)存中的數(shù)據(jù)恢復(fù)回來(lái)。


定期具體而言,又兩種方式:手動(dòng)觸發(fā),自動(dòng)觸發(fā)

  1. 手動(dòng)觸發(fā)
    save命令,阻塞當(dāng)前redis服務(wù)器,直到RDB過(guò)程完成為止。會(huì)導(dǎo)致類(lèi)似于 keys *的后果,一般不建議使用save
    bgsave命令,redis進(jìn)程執(zhí)行 fork 操作創(chuàng)建子進(jìn)程,RDB持久化過(guò)程由子進(jìn)程負(fù)責(zé),完成后自動(dòng)結(jié)束;阻塞只發(fā)生在fork階段
    redis內(nèi)部所有涉及到RDB的操作都采用類(lèi)似bgsave的方式

2.自動(dòng)觸發(fā)
在redis配置文件中(linux中,redis的默認(rèn)配置文件路徑是/etc/redis/redis.conf),設(shè)置下,使redis每隔多長(zhǎng)時(shí)間和每產(chǎn)生多少次修改就觸發(fā)
在這里插入圖片描述
使用save配置,如"save m n"表示 m秒內(nèi)數(shù)據(jù)集發(fā)送了 n 次修改,自動(dòng)RDB持久化;
通過(guò)shutdown 命令,關(guān)閉redis服務(wù)器,也會(huì)觸發(fā) service redis-server restart ,正常關(guān)閉
redis 進(jìn)行主從復(fù)制的時(shí)候,主節(jié)點(diǎn)也會(huì)自動(dòng)生成RDB快照,然后把RDB快照文件內(nèi)容傳輸給從節(jié)點(diǎn)


bgsave命令的運(yùn)行流程

在這里插入圖片描述

  1. 執(zhí)行bgsave命令,redis父進(jìn)程判斷當(dāng)前進(jìn)程是否存在其它正在執(zhí)行的子進(jìn)程,如RDB/AOF子進(jìn)程,如果存在bgsave命令直接返回
  2. 父進(jìn)程fork完成后,bgsave命令會(huì)返回"Background saving started" 信息并不再阻塞父進(jìn)程,父進(jìn)程可以繼續(xù)響應(yīng)其它命令
  3. 子進(jìn)程創(chuàng)建RDB文件,根據(jù)父進(jìn)程內(nèi)存生成臨時(shí)快照文件,完成后對(duì)原有文件進(jìn)行原子替換
  4. 子進(jìn)程發(fā)送信號(hào)給父進(jìn)程表示完成,父進(jìn)程更新統(tǒng)計(jì)信息

redis生成的rdb文件,存放在redis的工作目錄中的,可以在redis配置文件中,進(jìn)行設(shè)置
在這里插入圖片描述
在這里插入圖片描述
dump.rdb就是rdb機(jī)制生成的鏡像文件,redis服務(wù)器默認(rèn)的就是開(kāi)啟rdb的;dump.rdb文件就是二進(jìn)制文件,把內(nèi)存中的數(shù)據(jù),以壓縮的形式(默認(rèn)采用LZF算法),保存到這個(gè)二進(jìn)制文件中。
后續(xù)redis服務(wù)器重新啟動(dòng),就會(huì)嘗試加載這個(gè)rdb文件,如果發(fā)現(xiàn)格式錯(cuò)誤,可能會(huì)加載數(shù)據(jù)失敗
在這里插入圖片描述
redis-check-rdb是redis提供的rdb文件檢查工具


  • RDB是一個(gè)緊湊壓縮的二進(jìn)制文件,代表redis在某個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)快照。非常適用于備份,全量復(fù)制等場(chǎng)景。比如每6個(gè)小時(shí)執(zhí)行bgsave備份,并把RDB文件復(fù)制到遠(yuǎn)端機(jī)器或者文件系統(tǒng)中用于災(zāi)備
  • redis加載RDB恢復(fù)數(shù)據(jù)遠(yuǎn)遠(yuǎn)快于AOF的方式;RDB使用二進(jìn)制的方式組織數(shù)據(jù),直接把數(shù)據(jù)讀取到內(nèi)存中,按照字節(jié)的格式取出來(lái)放到結(jié)構(gòu)體/對(duì)象中即可,但AOF是使用文本的方式來(lái)組織數(shù)據(jù),則需要進(jìn)行一系列的字符串切分
  • RDB方式數(shù)據(jù)每辦法走到實(shí)時(shí)持久化/秒級(jí)持久化,bgsave每次運(yùn)行都需要執(zhí)行fork創(chuàng)建子進(jìn)程,屬于重量級(jí)操作,頻繁執(zhí)行成本過(guò)高
  • RDB文件使用特定二進(jìn)制格式保存,redis版本演進(jìn)過(guò)程有多個(gè)RDB版本,兼容可能有風(fēng)險(xiǎn);可以通過(guò)寫(xiě)一個(gè)程序,直接遍歷舊的redis中的所有key,把數(shù)據(jù)取出來(lái)插入到新的redis服務(wù)器中

AOF

redis的AOF(Append Only File)機(jī)制是一種持久化機(jī)制,用于將redis服務(wù)器接收到的所有寫(xiě)操作命令以追加的方式寫(xiě)入到磁盤(pán)中的日志文件中,重啟時(shí)再重新執(zhí)行AOF文件中的命令達(dá)到恢復(fù)數(shù)據(jù)的目的。
AOF的主要作用是解決數(shù)據(jù)持久化的實(shí)時(shí)性


開(kāi)啟AOF功能需要設(shè)置配置:appendonly yes,AOF文件名通過(guò)appendfilename配置,所在目錄和RDB一樣(/var/lib/redis)
在這里插入圖片描述
在這里插入圖片描述


在這里插入圖片描述

所有的寫(xiě)入命令會(huì)追加到aof_buf(緩沖區(qū))中,AOF緩沖區(qū)根據(jù)對(duì)應(yīng)的策略向硬盤(pán)做同步操作,隨著AOF文件越來(lái)越大,需要定期對(duì)AOF文件進(jìn)行重寫(xiě),達(dá)到壓縮目的,當(dāng)redis服務(wù)器啟動(dòng)時(shí),可以加載AOF文件進(jìn)行數(shù)據(jù)恢復(fù)

redis執(zhí)行命令速度快的重要原因,是直接操作內(nèi)存;現(xiàn)在引入AOF后,又要寫(xiě)內(nèi)存,又要寫(xiě)硬盤(pán)還可以想之前一樣快嗎?實(shí)際上,并沒(méi)有影響到redis處理請(qǐng)求的速度,有以下兩個(gè)原因:

  • AOF機(jī)制并非是直接讓工作線(xiàn)程把數(shù)據(jù)寫(xiě)入硬盤(pán),而是先寫(xiě)入一個(gè)內(nèi)存中的緩沖區(qū),先積累一部分,再統(tǒng)一寫(xiě)入硬盤(pán);這樣大大降低了寫(xiě)硬盤(pán)的次數(shù)
  • 硬盤(pán)上讀寫(xiě)數(shù)據(jù),順序讀寫(xiě)的速度是比較快的(比內(nèi)存還是慢很多),AOF是每次把新的操作寫(xiě)入到原有文件的末尾,屬于順序?qū)懭?/li>

但緩沖區(qū)的數(shù)據(jù)還是在內(nèi)存中,如果redis服務(wù)器突然掛了,緩沖區(qū)的數(shù)據(jù)就丟了。


redis給出一些選項(xiàng),讓我們選擇緩沖區(qū)的刷新策略
在這里插入圖片描述

刷新頻率越高,性能影響就越大,數(shù)據(jù)可靠性就越高
刷新評(píng)率越低,性能影響就越小,數(shù)據(jù)可靠性就越低

系統(tǒng)調(diào)用write 和 fsync說(shuō)明:

  • write操作會(huì)觸發(fā)延遲寫(xiě)(delayed write)機(jī)制,linux在內(nèi)核提供頁(yè)緩沖區(qū)用來(lái)提高硬盤(pán)IO性能,write操作在寫(xiě)入系統(tǒng)緩沖區(qū)后立即返回,同步硬盤(pán)操作依賴(lài)于系統(tǒng)調(diào)度機(jī)制;如:緩沖區(qū)頁(yè)空間寫(xiě)滿(mǎn)或到達(dá)特定時(shí)間周期。同步文件之前,如果此時(shí)系統(tǒng)故障宕機(jī),緩沖區(qū)內(nèi)數(shù)據(jù)丟失
  • fsync針對(duì)單個(gè)文件操作,做強(qiáng)制硬盤(pán)同步,fsync將阻塞直到數(shù)據(jù)寫(xiě)入到硬盤(pán)
  • 配置為always時(shí),每次寫(xiě)入都要同步AOF文件,性能很差,在一般的SATA硬盤(pán)上,只能支持大約幾百TPS寫(xiě)入。
  • 配置為no時(shí),由于操作系統(tǒng)同步策略不可控,雖然提供了性能,但數(shù)據(jù)丟失風(fēng)險(xiǎn)大大提高
  • 配置everysec,是默認(rèn)配置,兼顧數(shù)據(jù)安全和性能。理論上最多丟失1秒的數(shù)據(jù)

在這里插入圖片描述


AOF文件持續(xù)增長(zhǎng),體積越來(lái)越大,會(huì)影響到redis下次啟動(dòng)的啟動(dòng)時(shí)間;redis啟動(dòng)的時(shí)候要讀取aof文件內(nèi)容(記錄中間過(guò)程),而這個(gè)AOF文件有一些內(nèi)容是多余的。
在這里插入圖片描述
類(lèi)似上述操作,實(shí)際上AOF只需要記錄 set key 5即可。
因此redis就存在一個(gè)機(jī)制,能夠針對(duì)AOF文件進(jìn)行整理操作;也就是能夠刪除多余的內(nèi)容,使AOF文件大小變小

AOF重寫(xiě)過(guò)程可以分為手動(dòng)觸發(fā)和自動(dòng)觸發(fā)
手動(dòng)觸發(fā):調(diào)用bgrewriteaof命令
自動(dòng)觸發(fā):根據(jù) auto-aof-rewrite-min-size 和 auto-aof-rewrite-percentage 參數(shù)確定自動(dòng)觸發(fā)時(shí)間

  • auto-aof-rewrite-min-size:觸發(fā)重寫(xiě)時(shí)AOF的最小文件大小
  • auto-aof-rewrite-percentage:當(dāng)前AOF占用大小相比上次重傳寫(xiě)時(shí)增加的比例
    在這里插入圖片描述

在這里插入圖片描述

執(zhí)行AOF重新請(qǐng)求,如果當(dāng)前進(jìn)程正在執(zhí)行AOF重寫(xiě),請(qǐng)求不執(zhí)行;如果當(dāng)前進(jìn)程正在執(zhí)行bgsave操作,重新命令延遲到bgsave完成之后再執(zhí)行
父進(jìn)程執(zhí)行fork創(chuàng)建子進(jìn)程;
父進(jìn)程繼續(xù)響應(yīng)其它命令,所有寫(xiě)入命令仍然寫(xiě)入AOF緩沖區(qū)并根據(jù)appendfsync策略同步到硬盤(pán),保證舊AOF文件機(jī)制正確(重寫(xiě)過(guò)程中,如果redis服務(wù)器掛了,可以根據(jù)舊AOF文件恢復(fù)數(shù)據(jù));子進(jìn)程根據(jù)內(nèi)存快照,將命令合并到新的AOF文件中;
子進(jìn)程完成重寫(xiě),新AOF文件寫(xiě)入后,子進(jìn)程發(fā)送信號(hào)給父進(jìn)程,父進(jìn)程把AOF重寫(xiě)緩沖區(qū)內(nèi)臨時(shí)保存的命令追加到新的AOF文件中,用新AOF文件替換舊AOF文件

注意:
重寫(xiě)的時(shí)候,不關(guān)心AOF文件中原來(lái)都有什么,只關(guān)心內(nèi)存中最終的數(shù)據(jù)狀態(tài),子進(jìn)程只需要把內(nèi)存中當(dāng)前的數(shù)據(jù),獲取出來(lái),以AOF格式寫(xiě)入到一個(gè)新的AOF文件中;內(nèi)存中的數(shù)據(jù)狀態(tài),就已經(jīng)相當(dāng)于把舊AOF文件結(jié)果整理后的樣子;
RDB對(duì)于fork之后的新數(shù)據(jù),就直接置之不理;AOF則對(duì)于fork之后的新數(shù)據(jù),采用aof_rewrite_buf緩沖區(qū)的方式來(lái)處理;這是因?yàn)镽DB本身的設(shè)計(jì)理念就是用來(lái)“定期備份”的,AOF的設(shè)計(jì)理念是“實(shí)時(shí)備份”


AOF本來(lái)是按照文本的方式寫(xiě)入文件的,但文本的方式寫(xiě)入文件,后續(xù)加載成本比較高;redis就引入了“混合持久化”的方式,結(jié)合了RDB和AOF的特點(diǎn)
按照AOF的方式,把每一個(gè)請(qǐng)求/操作,都記錄文件,在觸發(fā)AOF重寫(xiě)之后,把當(dāng)前內(nèi)存的狀態(tài)按照RDB的二進(jìn)制格式寫(xiě)入到新的AOF文件中,后續(xù)再進(jìn)行的操作,仍然按照AOF文本的方式追加到文件后面
在這里插入圖片描述
該選項(xiàng)為 yes 表示開(kāi)啟混合持久化


當(dāng)redis上同時(shí)存在AOF文件和RDB快照時(shí),啟動(dòng)redis以誰(shuí)為主?以AOF為主,RDB直接被忽略了,AOF中包含的數(shù)據(jù)比RDB更全。

在這里插入圖片描述


總結(jié)

以上就是我的redis學(xué)習(xí)筆記

在這里插入圖片描述

http://www.risenshineclean.com/news/61666.html

相關(guān)文章:

  • 怎么樣用ppt做網(wǎng)站百度最怕哪個(gè)部門(mén)去投訴
  • 市局政府網(wǎng)站建設(shè)管理情況匯報(bào)seo的作用主要有
  • 越秀網(wǎng)站建設(shè)設(shè)計(jì)自媒體是什么
  • 軟件公司網(wǎng)站建設(shè)安徽網(wǎng)站推廣公司
  • 群暉nas 做網(wǎng)站抖音視頻seo霸屏
  • 一流的成都 網(wǎng)站建設(shè)鄭州外語(yǔ)網(wǎng)站建站優(yōu)化
  • 坪地網(wǎng)站建設(shè)如何seo技術(shù)是什么意思
  • 成都個(gè)人兼職做網(wǎng)站行業(yè)關(guān)鍵詞搜索量排名
  • 成都智能建站模板平臺(tái)交易網(wǎng)
  • 北京網(wǎng)站關(guān)鍵詞排名公司谷歌chrome安卓版
  • 西麗做網(wǎng)站seo搜索引擎工具
  • 商家在網(wǎng)站做淘寶客會(huì)給傭金嗎比百度好用的搜索軟件手機(jī)版
  • 需要個(gè)網(wǎng)站現(xiàn)在什么網(wǎng)絡(luò)推廣好
  • 大學(xué)生做推送的網(wǎng)站百度提交網(wǎng)址入口
  • 搜索引擎營(yíng)銷(xiāo)優(yōu)化診斷訓(xùn)練深圳整站seo
  • 一家只做家紡的網(wǎng)站游戲推廣員到底犯不犯法
  • 羅湖附近公司做網(wǎng)站建設(shè)哪家服務(wù)周到百搜網(wǎng)絡(luò)科技有限公司
  • 聊城專(zhuān)業(yè)網(wǎng)站建設(shè)制作短視頻代運(yùn)營(yíng)公司
  • 經(jīng)營(yíng)性網(wǎng)站備案電子標(biāo)識(shí)seo基礎(chǔ)培訓(xùn)教程
  • 廣州網(wǎng)站建設(shè)團(tuán)隊(duì)鄭州網(wǎng)站建設(shè)公司
  • 做網(wǎng)站 數(shù)據(jù)庫(kù)撫州seo外包
  • 常州市天寧區(qū)建設(shè)局網(wǎng)站bt磁力鏈好用的引擎
  • 上海松江做網(wǎng)站建設(shè)淘寶店鋪怎么引流推廣
  • 橙子建站驗(yàn)證碼網(wǎng)絡(luò)營(yíng)銷(xiāo)的特點(diǎn)
  • 安徽建設(shè)廳網(wǎng)站杭州關(guān)鍵詞優(yōu)化外包
  • 浙江網(wǎng)站建設(shè)網(wǎng)站優(yōu)化泉州seo外包
  • 怎么找回網(wǎng)站后臺(tái)密碼百度問(wèn)答優(yōu)化
  • 江西南昌網(wǎng)站建設(shè)服務(wù)文大俠seo博客
  • 網(wǎng)站 功能建設(shè)上 不足搜索引擎優(yōu)化的作用是什么
  • 寧波建設(shè)網(wǎng)站哪家好北京自動(dòng)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣