欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Redis實現(xiàn)持久化的方式匯總

 更新時間:2022年10月13日 08:33:02   作者:Lincee  
Redis是一種高級key-value數(shù)據(jù)庫。它跟memcached類似,不過數(shù)據(jù)可以持久化,而且支持的數(shù)據(jù)類型很豐富。今天我們就來看看如何實現(xiàn)Redis持久化,需要的朋友可以參考下

Redis有3種實現(xiàn)持久化的方式:AOF日志、RDB快照、混合持久化

Redis寫入AOF日志的過程

Redis執(zhí)行完寫操作命令后,將命令追加到server.aof_buf緩沖區(qū)
通過write()系統(tǒng)調(diào)用,將aof_buf緩沖區(qū)的數(shù)據(jù)寫入到AOF文件
數(shù)據(jù)被拷貝到了內(nèi)核緩沖區(qū)page cache
由內(nèi)核決定何時將數(shù)據(jù)寫入硬盤

Redis實現(xiàn)RDB快照

生成 RDB 文件的兩個命令:save 和 bgsave

執(zhí)行save命令會在主線程生成RDB文件,執(zhí)行bgsave命令會創(chuàng)建一個子進程來生成RDB文件

執(zhí)行bgsave命令時,會通過fork()創(chuàng)建子進程,子進程和父進程共享同一片內(nèi)存數(shù)據(jù)。因為創(chuàng)建子進程的時候,子進程復(fù)制父進程的頁表,但頁表指向的物理內(nèi)存還是一個。如果主線程執(zhí)行讀操作,則主線程和 bgsave 進程互不影響;如果主線程執(zhí)行寫操作,則被修改的數(shù)據(jù)會復(fù)制一份副本,然后 bgsave 子進程會把該副本數(shù)據(jù)寫入 RDB 文件,在這個過程中,主線程仍然可以直接修改原來的數(shù)據(jù)

混合持久化

在AOF日志重寫過程,當開啟了混合持久化時,在AOF重寫日志時,fork出來的重寫子進程會先將與主線程共享的內(nèi)存數(shù)據(jù)以RDB方式寫到AOF文件,然后主線程處理的操作命令會被記錄在重寫緩沖區(qū),重寫緩沖區(qū)里的增量命令會以AOF方式寫入到AOF文件,寫入完成后通知主進程將含有的RDB格式和AOF格式的AOF文件替換舊版。

到此這篇關(guān)于Redis實現(xiàn)持久化的方式匯總的文章就介紹到這了,更多相關(guān)Redis實現(xiàn)持久化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Redis調(diào)用Lua腳本及使用場景快速掌握

    Redis調(diào)用Lua腳本及使用場景快速掌握

    Redis?是一種非常流行的內(nèi)存數(shù)據(jù)庫,常用于數(shù)據(jù)緩存與高頻數(shù)據(jù)存儲。大多數(shù)開發(fā)人員可能聽說過redis可以運行?Lua?腳本,但是可能不知道redis在什么情況下需要使用到Lua腳本
    2022-03-03
  • redis.conf中使用requirepass不生效的原因及解決方法

    redis.conf中使用requirepass不生效的原因及解決方法

    本文主要介紹了如何啟用requirepass,以及啟用requirepass為什么不會生效,從代碼層面分析了不生效的原因,以及解決方法,需要的朋友可以參考下
    2023-07-07
  • Redis實現(xiàn)商品秒殺的示例代碼

    Redis實現(xiàn)商品秒殺的示例代碼

    本文主要介紹了Redis實現(xiàn)商品秒殺的示例代碼,詳細介紹了Redis的List、Set和Hash類型,以及使用Redis事務(wù)保證原子性的方式,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例

    redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例

    這篇文章主要為大家介紹了redis持久化AOF和RDB的區(qū)別及解決各個場景問題示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Redis在項目中常見的12種使用場景示例和說明

    Redis在項目中常見的12種使用場景示例和說明

    Redis是一個開源的高性能鍵值對數(shù)據(jù)庫,它以其內(nèi)存中數(shù)據(jù)存儲、鍵過期策略、持久化、事務(wù)、豐富的數(shù)據(jù)類型支持以及原子操作等特性,在許多項目中扮演著關(guān)鍵角色,以下是整理的12個Redis在項目中常見的使用場景舉例說明和解釋
    2024-06-06
  • redis遠程連接不上的解決辦法

    redis遠程連接不上的解決辦法

    本文主要介紹了redis遠程連接不上的解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • 淺析Redis Sentinel 與 Redis Cluster

    淺析Redis Sentinel 與 Redis Cluster

    本文主要介紹Redis Sentinel 及 Redis Cluster的區(qū)別及用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • 幾分鐘教你掌握Redis簡單動態(tài)字符串SDS

    幾分鐘教你掌握Redis簡單動態(tài)字符串SDS

    這篇文章主要為大家介紹了幾分鐘教你掌握Redis簡單動態(tài)字符串SDS方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 深入淺析Redis 集群伸縮原理

    深入淺析Redis 集群伸縮原理

    Redis 集群提供了靈活的節(jié)點擴容和收縮方案。在不影響集群對外服務(wù)的情況下,可以為集群添加節(jié)點進行擴容,也可以下線部分節(jié)點進行縮容,接下來通過本文給大家分享Redis 集群伸縮原理,感興趣的朋友一起看看吧
    2021-05-05
  • Redis的數(shù)據(jù)類型和內(nèi)部編碼詳解

    Redis的數(shù)據(jù)類型和內(nèi)部編碼詳解

    Redis是通過Key-Value的形式來組織數(shù)據(jù)的,而Key的類型都是String,而Value的類型可以有很多,在Redis中最通用的數(shù)據(jù)類型大致有這幾種:String、List、Set、Hash、Sorted Set,下面通過本文介紹Redis數(shù)據(jù)類型和內(nèi)部編碼,感興趣的朋友一起看看吧
    2024-04-04

最新評論