国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Redis_持久化(AOF、RDB)

這篇具有很好參考價值的文章主要介紹了Redis_持久化(AOF、RDB)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

6. Redis AOF

6.1 簡介

目前,redis的持久化主要應用AOF(Append Only File)和RDF兩大機制,AOF以日志的形式來記錄每個寫操作(增量保存),將redis執(zhí)行過的所有指令全部安全記錄下來(讀操作不記錄)。只許追加文件,但不可以改寫文件,redis啟動之初,會讀取該文件,重新構建數(shù)據(jù)。

6.2 AOF的配置

  • AOF默認不開啟,在conf配置文件中進行配置。
  • 修改redis.conf配置文件
    appendonly no
    //修改
    appendonly yes
    
  • 默認文件名是appendonly.aof
  • 默認是啟動后的相對路徑,redis在哪里啟動,appendonly.aof文件就在哪生成

6.3 AOF日志是如何實現(xiàn)

數(shù)據(jù)庫寫前日志(Write Ahead Log ,WAL),在實際寫數(shù)據(jù)庫前,先把修改的數(shù)據(jù)記錄到日志文件中,以便發(fā)生故障時,時行恢復。

AOF日志是寫后日志。redis先去執(zhí)行命令,把數(shù)據(jù)寫入內(nèi)存中,然后才去記錄日志。
Redis_持久化(AOF、RDB),redis,數(shù)據(jù)庫,緩存,后端
查看AOF文件
set k1 v1
vi appendonly.aof

*3 //接下來的指令由3部分組成
$3 //指令有3個字節(jié)
set
$2 //指令有2個字節(jié)
k1
$2 //指令有2個字節(jié)
v1

為什么使用寫后日志?

  1. redis為了避免檢查開銷,向AOF中記錄日志,是不做檢查的。如果寫前執(zhí)行,很有可能將錯誤指令記錄到日志中,在使用redis恢復日志時,就可能會出現(xiàn)錯誤
  2. 不會阻塞當前的寫操作

6.4 AOF 的潛在風險

  1. aof文件可能由于異常原因被損壞??梢允褂胷edis自帶的命令redis-check-aof --fix appendonly.aof文
    件,修復成功,可以正確啟動
  2. 由于剛剛執(zhí)行一個指令,還沒有寫入日志,就宕機了。就會導致數(shù)據(jù)永久丟失(redis做為數(shù)據(jù)庫存儲的
    情況)
  3. AOF避免了對當前指令的阻塞,但可能會由于磁盤寫入壓力較大,對下一個操作帶來阻塞風險

6.5 AOF三種寫回策略

打開redis.conf配置文件 appendfsync選項

  • always:同步寫回:每個寫指令執(zhí)行完,立即同步將指令寫入磁盤日志文件中
  • everysec:每秒寫回:默認配置方式。每個寫指令執(zhí)行完,先把日志寫到AOF文件的內(nèi)存緩沖區(qū)。每隔一秒把緩沖區(qū)的內(nèi)容寫入磁盤
  • no:操作系統(tǒng)控制寫回:每個寫指令執(zhí)行完,先把日志寫到AOF文件的內(nèi)存緩沖區(qū),由操作系統(tǒng)決定何時把緩沖區(qū)的內(nèi)容寫入磁盤
選項 寫日志時機 優(yōu)點 缺點
always 同步寫回 數(shù)據(jù)可靠性高,基本不丟失 對性能影響大
everysec 每秒寫回 性能適中 當服務器宕機時,丟失1秒內(nèi)數(shù)據(jù)
no 操作系統(tǒng)控制寫回 性能最高 當服務器宕機時,丟失數(shù)據(jù)較多

6.6 AOF重寫機制

6.6.1 簡介

Redis根據(jù)數(shù)據(jù)庫現(xiàn)有數(shù)據(jù),創(chuàng)建一個新的AOF文件,讀取數(shù)據(jù)庫中所有鍵值對,重新對應一條命令寫入。

可以使用命令bgrewriteaof

重寫主要是對多余的命令進行簡化,修改,例如對list的lpushrpop進行簡化

6.6.2 AOF重寫的相關配置

auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb

如果aof文件超過64m,且比上次重寫后的大小增加了100%,自動觸發(fā)重寫。
例如 文件80m,開如重寫,重寫后降到50m,下一次,達到100m再開始重寫。

6.6.3 AOF重寫流程

  • bgrewirteaof觸發(fā)重寫,判斷是否當前有重寫在運行,如果有,則等待重寫結束后再執(zhí)行
  • 主進程fork出一個子進程,執(zhí)行重寫操作,保證主進程不阻塞,可以繼續(xù)執(zhí)行命令
  • 子進程循環(huán)遍歷reids內(nèi)存中的所有數(shù)據(jù)到臨時文件,客戶端的寫請求同時寫入aof緩沖區(qū)和aof重寫緩沖區(qū)。保證原AOF文件完整以及新的AOF文件生成期間的新的數(shù)據(jù)修改操作不會丟失
  • 子進程寫完新AOF文件以后,向主進程發(fā)送信號,主進程更新統(tǒng)計信息
  • 主進程把aof重寫緩沖區(qū)中的數(shù)據(jù)寫入到新的AOF文件
  • 用新AOF文件覆蓋掉舊的AOF文件,完成AOF重寫

7. Redis RDB

7.1 簡介

RDB(Redis DataBase):內(nèi)存快照,記錄內(nèi)存中某一時刻數(shù)據(jù)的狀態(tài)。

RDB和AOF相比記錄的數(shù)據(jù),不是操作指令

redis提供了兩個指令生成RDB文件

  • save:再主線程中執(zhí)行,會阻塞主線程
  • bgsave:創(chuàng)建一個子線程,專門用來寫RDB,避免主線程阻塞,默認配置

例如:有6GB的內(nèi)存數(shù)據(jù)量,磁盤寫入0.3GB/S,需要20S時間,來完成RDB文件寫入,其中在這20中可能會有寫入或修改數(shù)據(jù)

  • 處理技術:寫時復刻技術(copy-on-write cow)。在執(zhí)行快照處理的時候,依然正確執(zhí)行寫入操作(快照將修改數(shù)據(jù)創(chuàng)建副本,保存的時修改之前的數(shù)據(jù)
    Redis_持久化(AOF、RDB),redis,數(shù)據(jù)庫,緩存,后端

7.2 快照頻率

通過redis.conf配置文件去做處理

# save 3600 1
# save 300 100
# save 60 10000

7.3 混合使用AOF和RDB

通過redis.conf配置文件
打開aof

appendonly yes

打開混合配置

aof-use-rdb-preamble yes

在aof文件中,前半部分,就是rdb文件的內(nèi)容,從rewirte之后,是aof文件內(nèi)容
Redis_持久化(AOF、RDB),redis,數(shù)據(jù)庫,緩存,后端文章來源地址http://www.zghlxwxcb.cn/news/detail-642121.html

7.4關于對redis執(zhí)久化處理的建議

  • 如果數(shù)據(jù)在服務器運行的時候,使用redis做緩沖,可以不使用任何持久化方式
  • 數(shù)據(jù)不能丟失,rdb和aof混合使用是一個好的選擇
  • 如果數(shù)據(jù)不要求非常嚴格,要以允許分鐘級別丟失,可以使用rdb
  • 如果只使用AOF,建議配置策略是everysec,在可靠性和性能之間做了一個折中
  • 如果磁盤允許,盡量避免AOF重寫的頻率,將默認值64M進行修改

到了這里,關于Redis_持久化(AOF、RDB)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Redis優(yōu)化 RDB AOF持久化

    Redis優(yōu)化 RDB AOF持久化

    ---------------------- Redis 高可用 ---------------------------------------- 在web服務器中,高可用是指服務器可以正常訪問的時間,衡量的標準是在多長時間內(nèi)可以提供正常服務(99.9%、99.99%、99.999%等等)。 但是在Redis語境中,高可用的含義似乎要寬泛一些,除了保證提供正常服務(如主

    2024年02月09日
    瀏覽(27)
  • Redis 持久化RDB和AOF

    Redis 有兩種持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看總結。本章節(jié)通過配置文件,觸發(fā)快照的方式,恢復數(shù)據(jù)的操作,命令操作演示,優(yōu)缺點來學習 Redis 的重點知識 持久化 。 RDB 是 Redis 默認的持久化

    2024年02月14日
    瀏覽(21)
  • Redis_持久化(AOF、RDB)

    Redis_持久化(AOF、RDB)

    目前,redis的持久化主要應用AOF(Append Only File)和RDF兩大機制,AOF以日志的形式來記錄每個寫操作(增量保存),將redis執(zhí)行過的所有指令全部安全記錄下來(讀操作不記錄)。只許追加文件,但不可以改寫文件,redis啟動之初,會讀取該文件,重新構建數(shù)據(jù)。 AOF默認不開啟

    2024年02月13日
    瀏覽(22)
  • 【Redis】Redis持久化機制RDB與AOF

    【Redis】Redis持久化機制RDB與AOF

    目錄 一、RDB 1、概念 2、RDB文件保存 3、執(zhí)行RDB 4、觸發(fā)RDB 5、fork原理 6、RDB的缺點 二、AOF 1、概念 2、開啟AOF 3、觸發(fā)AOF 4、觸發(fā)重寫AOF 三、區(qū)別 RDB全稱為Redis Database Backup File(Redis數(shù)據(jù)備份文件),也叫做Redis數(shù)據(jù)快照。簡單的來說就是把某一時刻Redis內(nèi)存里的數(shù)據(jù)都記錄到磁

    2024年02月08日
    瀏覽(39)
  • 全面解析 Redis 持久化:RDB、AOF與混合持久化

    前言: 每次你在游戲中看到玩家排行榜,或者在音樂應用中瀏覽熱門歌單,有沒有想過這個排行榜是如何做到實時更新的?當然,依靠 Redis 即可做到。 在技術領域,我們經(jīng)常聽到 「鍵值存儲」 這個詞。但在 Redis 的世界里,這只是冰山一角。Redis 的對象,不僅僅是簡單的數(shù)據(jù)

    2024年03月10日
    瀏覽(33)
  • Redis兩種持久化方案RDB持久化和AOF持久化

    Redis兩種持久化方案RDB持久化和AOF持久化

    Redis持久化 Redis有兩種持久化方案: RDB持久化 AOF持久化 1.1.RDB持久化 RDB全稱Redis Database Backup file(Redis數(shù)據(jù)備份文件),也被叫做Redis數(shù)據(jù)快照。簡單來說就是把內(nèi)存中的所有數(shù)據(jù)都記錄到磁盤中。當Redis實例故障重啟后,從磁盤讀取快照文件,恢復數(shù)據(jù)??煺瘴募Q為RDB文件

    2024年02月14日
    瀏覽(28)
  • redis持久化機制:RDB和AOF

    Redis的持久化機制主要依賴于兩種方法:RDB(Redis Database)和AOF(Append Only File)。這兩種機制可以單獨使用,也可以同時使用,以提高數(shù)據(jù)的持久性和可靠性。 RDB(Redis Database) 工作原理 : RDB通過創(chuàng)建數(shù)據(jù)集的快照來進行持久化。 快照創(chuàng)建可以在指定的時間間隔內(nèi)自動完成

    2024年01月19日
    瀏覽(58)
  • Redis 持久化-RDB和 持久化-AOF 的詳細介紹以及區(qū)別

    Redis 持久化-RDB和 持久化-AOF 的詳細介紹以及區(qū)別

    在線文檔: https://redis.io/topics/persistence RDB(Redis DataBase) AOF(Append Of File) 在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤, 也就Snapshot 快照,恢復時將快照文件讀到內(nèi)存 RDB 及其執(zhí)行流程 對上圖的解讀 具體流程如下: redis 客戶端執(zhí)行bgsave 命令或者自動觸發(fā)bgsave 命令;

    2024年02月09日
    瀏覽(32)
  • 「 Redis 」RDB和AOF持久化全面解析

    「 Redis 」RDB和AOF持久化全面解析

    參考鳴謝 【說透Redis】10分鐘徹底理解Redis的持久化機制:RDB和AOF 程序員讀書 AOF 持久化是怎么實現(xiàn)的? xiaolinCoding Redis持久化之RDB與AOF 的區(qū)別 1024下午茶 在現(xiàn)代的互聯(lián)網(wǎng)應用中,數(shù)據(jù)的持久化和可靠性是至關重要的。在 Redis 中,RDB 和 AOF 兩種持久化方式可以確保數(shù)據(jù)的持久

    2023年04月27日
    瀏覽(32)
  • Redis持久化:RDB和AOF機制詳解

    Redis持久化:RDB和AOF機制詳解

    目錄 1.Redis持久化簡介 2.RDB持久化 ? ?2.1 什么是 RDB 持久化? ? ?2.2 觸發(fā)方式 ? ?2.3 Redis.conf中配置RDB ? ?2.4 RDB 更深入理解 ? ?2.5 RDB優(yōu)缺點 3.AOF持久化 ? ?3.1 什么是 AOF 持久化? ? ?3.2 如何實現(xiàn)AOF ? ?3.3 Redis.conf中配置AOF ? ?3.4?深入理解AOF重寫 4.RDB和AOF混合方式(4.0版本

    2024年02月12日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包