91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Redis持久化AOF原理學(xué)習(xí)

麥辣雞腿堡 ? 來源:七哥聊編程 ? 作者:七哥聊編程 ? 2023-10-09 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原理

在學(xué)習(xí)AOF原理前,我們首先要了解 RESP (Redis的序列化協(xié)議)

圖片

從圖中可以看到客戶端在調(diào)用redis服務(wù)端時(shí),傳入的命令和 key、value 都會(huì)通過 RESP 協(xié)議序列化為文本。AOF文件中存儲(chǔ)的就是序列化后的reids命令。

AOF同步和RDB類似之處在于都是采用fork進(jìn)程來處理:

圖片

通過這張圖,我們知道了Redis是將客戶端傳入的命令直接寫入AOF文件的,那如果同一個(gè)key原本值是0,然后改為1,最后在改為2,如果每一條命令都記錄不僅毫無意義,同時(shí)會(huì)使得AOF文件越來越大,所以 Redis 在這塊有一個(gè)小優(yōu)化。

AOF重寫(優(yōu)化AOF文件)
set s1 11
set s1 22

上面的操作,如果沒有優(yōu)化之前AOF文件是會(huì)將這兩個(gè)命令按照RESP序列化后存儲(chǔ),如果優(yōu)化后,則只存儲(chǔ)后面一條命令即 set s1 22,同一個(gè)key的值被覆蓋了,只存儲(chǔ)最終結(jié)果。

重寫過程分析

那如果做到同一個(gè)key在AOF文件中只存儲(chǔ)最新的值呢?不可能每一次寫入文件前去檢查一遍刪除之前這個(gè)key的值吧,這樣做效率肯定賊低,我們來看看Redis是怎么做的?

Redis 其實(shí)是會(huì)定期新創(chuàng)建一個(gè) AOF 文件,然后做 AOF 文件的重寫優(yōu)化,在創(chuàng)建新 AOF 文件的過程中,會(huì)繼續(xù)將命令追加到現(xiàn)有的 AOF 文件里面,即使重寫過程中發(fā)生停機(jī),現(xiàn)有的 AOF 文件也不會(huì)丟失。而一旦新 AOF 文件創(chuàng)建完畢, Redis 就會(huì)從舊 AOF 文件切換到新 AOF 文件,并開始對(duì)新 AOF 文件進(jìn)行追加操作。

這個(gè)操作不得不說還是玩的66的!大寫的服。

優(yōu)化的觸發(fā)條件:

那上面說的定期重建 AOF 文件具體的時(shí)機(jī)是啥時(shí)候呢?答案也在配置文件 redis.conf 中,需要如下的配置即可,我已經(jīng)寫了注釋,你一眼就能看懂的。

# 表示當(dāng)前aof文件大小超過上一次aof文件大小的百分之多少的時(shí)候會(huì)進(jìn)行重寫。如果之前沒有重寫過,以啟動(dòng)時(shí)aof文件大小為準(zhǔn)
auto-aof-rewrite-percentage 100
# 限制允許重寫最小aof文件大小,也就是文件大小小于64mb的時(shí)候,不需要進(jìn)行優(yōu)化
auto-aof-rewrite-min-size 64mb
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    9

    文章

    3210

    瀏覽量

    76369
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    4020

    瀏覽量

    68349
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    392

    瀏覽量

    12186
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Redis堅(jiān)持持久方式概述

    Redis 持久
    發(fā)表于 09-25 17:04

    阿里云基于NVM的持久高性能Redis數(shù)據(jù)庫

    各自業(yè)務(wù)需求,在讀寫性能、緩存容量、數(shù)據(jù)可靠性等方面作出靈活的選擇。Redis提供了RDB和AOF兩種持久方式供選擇,4.0中更是引入了RDB-A
    發(fā)表于 08-13 15:06 ?467次閱讀

    Redis持久機(jī)制的實(shí)現(xiàn)原理和使用技巧

    Redis將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,宕機(jī)或重啟都會(huì)使內(nèi)存數(shù)據(jù)全部丟失, Redis持久機(jī)制用來保證數(shù)據(jù)不會(huì)因?yàn)楣收隙鴣G失。
    的頭像 發(fā)表于 09-13 16:42 ?1588次閱讀

    Redis持久化分為兩種:RDB和AOF

    Redis持久,一個(gè)老掉牙的問題,但是面試官就是喜歡問。這也是我們學(xué)Redis必會(huì)的一個(gè)知識(shí)點(diǎn)。
    的頭像 發(fā)表于 02-21 09:22 ?1285次閱讀

    Redis是什么?簡述它的優(yōu)缺點(diǎn)?

    /s,寫的速度是81000次/s。 支持?jǐn)?shù)據(jù)持久,支持AOF和RDB兩種持久方式。 支持事務(wù), Re
    的頭像 發(fā)表于 10-09 10:37 ?1730次閱讀

    Redis持久機(jī)制介紹

    Redis持久機(jī)制? 為了能夠重用Redis數(shù)據(jù),或者防止系統(tǒng)故障,我們需要將Redis中的數(shù)據(jù)寫入到磁盤空間中,即
    的頭像 發(fā)表于 10-09 11:44 ?1061次閱讀
    <b class='flag-5'>Redis</b><b class='flag-5'>持久</b><b class='flag-5'>化</b>機(jī)制介紹

    Redis持久RDB方式介紹

    Redis持久 Redis是一個(gè)內(nèi)存數(shù)據(jù)庫,為了保證數(shù)據(jù)的持久性,它提供了兩種持久
    的頭像 發(fā)表于 10-09 14:56 ?1196次閱讀
    <b class='flag-5'>Redis</b><b class='flag-5'>持久</b><b class='flag-5'>化</b>RDB方式介紹

    redis持久方式有幾種及配置

    Redis是一種內(nèi)存數(shù)據(jù)庫,為了避免數(shù)據(jù)丟失,需要將數(shù)據(jù)持久到磁盤上。Redis提供了兩種持久
    的頭像 發(fā)表于 12-04 11:09 ?1276次閱讀

    redis兩種持久方式的區(qū)別

    的完整性和一致性。 Redis提供了兩種持久方式:RDB(Redis Database)和AOF(Append Only File)。這兩
    的頭像 發(fā)表于 12-04 11:12 ?1170次閱讀

    redis持久方式RDB和AOF的區(qū)別

    Redis 是一個(gè)高性能的鍵值對(duì)數(shù)據(jù)庫,提供了兩種持久方式:RDB 和 AOF。RDB 是將 Redis 的數(shù)據(jù)快照保存到磁盤上,而
    的頭像 發(fā)表于 12-04 16:25 ?1466次閱讀

    redis持久機(jī)制和如何實(shí)現(xiàn)持久

    Redis是一款高性能的非關(guān)系型數(shù)據(jù)庫,其持久機(jī)制是保證數(shù)據(jù)在重啟后仍能夠保存的關(guān)鍵。Redis提供了兩種方式來實(shí)現(xiàn)持久
    的頭像 發(fā)表于 12-05 10:02 ?1011次閱讀

    redis持久機(jī)制優(yōu)缺點(diǎn)

    持久機(jī)制:RDB(Redis Database)和AOF(Append Only File)。 RDB持久
    的頭像 發(fā)表于 12-05 10:03 ?1414次閱讀

    redis里數(shù)據(jù)什么時(shí)候持久

    Redis是一種開源的高性能、非關(guān)系型內(nèi)存數(shù)據(jù)庫,它使用了鍵值對(duì)存儲(chǔ)數(shù)據(jù),并且支持多種數(shù)據(jù)結(jié)構(gòu)。 Redis提供了持久機(jī)制,以確保在服務(wù)器重啟后數(shù)據(jù)不會(huì)丟失。
    的頭像 發(fā)表于 12-05 10:05 ?939次閱讀

    云容器redis持久配置

    丟失。 Redis提供了不同的持久機(jī)制,可以根據(jù)需要進(jìn)行配置。本文將詳細(xì)介紹云容器中Redis持久
    的頭像 發(fā)表于 12-05 10:07 ?1058次閱讀

    redis持久rdb和aof一起用好處

    Redis是一個(gè)流行的內(nèi)存數(shù)據(jù)庫,它通過使用不同的持久機(jī)制來確保數(shù)據(jù)的持久性。RDB和AOFRedi
    的頭像 發(fā)表于 12-05 10:17 ?1405次閱讀