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

關于Redis持久化的深入探究

 更新時間:2023年05月21日 11:54:52   作者:一天睡20個小時  
Redis持久化是將內存中的數據保存到磁盤,以防止數據丟失。Redis提供了兩種持久化方式:RDB和AOF,本文將給大家詳解介紹Redis持久化,感興趣的同學可以跟著小編一起來學習

Redis持久化

官網地址:Redis persistence | Redis

Redis持久化是將內存中的數據保存到磁盤,以防止數據丟失。Redis提供了兩種持久化方式:RDB和AOF。

1、為什么需要持久化?

reids是內存數據庫,內存一斷電或者宕機數據就消失了沒有了,需要redis中的數據長期持有,它重啟宕機恢復過來之后還是能從磁盤讀回之前的數據

使用RDB(Redis Database)或者AOF(Append Only File)還可以RDB和AOF混合使用將數據寫入磁盤

2、RDB(Redis Database)

2.1 官網介紹

RDB(Redis 數據庫):RDB 持久性以指定的時間間隔執(zhí)行數據集的時間點快照

2.2 什么是RDB

RDB持久化方式將Redis服務器中某個時間點的所有鍵值對集合寫入一個快照文件。這個快照文件可以在Redis發(fā)生宕機時用于數據恢復。

RDB持久化方式的優(yōu)點是在恢復數據時速度較快,缺點是如果Redis服務器宕機時未保存快照文件,會丟失部分數據。

為了解決這個問題,可以使用自動備份機制和設置持久化時間來進行保護。在Redis.conf文件中可以設置save參數,表示在多長時間內,至少有n個key發(fā)生變化時,就會啟動一次自動備份。同時也可以設置備份目錄和備份文件名,定期備份Redis中的數據,建議每天進行一次。

2.3 操作步驟

  • 按照redis.conf里配置文件的save

    5秒鐘修改兩次

 433 # save 3600 1 300 100 60 10000
 434   save 5 2
  • 修改dump文件保存路徑

    自定義路徑的文件不能為空,得提前去創(chuàng)建好

  • 自定義路徑

3、AOF(Append Only File)

3.1 什么是AOF?

以日志的形式來記錄每一個寫操作,將redis執(zhí)行過的所有寫指令記錄下來(讀操作不記錄),只許追加文件但不可以改寫文件,redis啟動之初會讀取該文件重新構建數據,換言之,redis重啟的話就根據日志文件的內容將寫指令從前到后執(zhí)行一次以完成數據的恢復工作

默認情況下,redis是沒有開啟AOF(append only file)的。開啟AOF功能需要設置配置:appendonly yes

3.2 AOF持久化方式

AOF持久化方式是通過記錄Redis執(zhí)行過的寫命令來恢復數據。當Redis服務器重啟時,會通過執(zhí)行AOF文件中的命令來恢復數據。AOF持久化方式相對于RDB持久化方式而言,可靠性更高,但磁盤消耗較大。

用戶可以通過配置文件設置AOF文件的名稱和同步方式等參數,有always、everysec和no三種同步策略可供選擇。當使用always策略時,每次寫操作完成后都會立即將數據同步到磁盤中;當使用everysec策略時,Redis會每秒鐘同步一次到磁盤中;而使用no策略時,Redis會盡可能把同步寫操作的負載分擔到系統(tǒng)的后臺寫任務中去。

為了保證Redis的數據安全性,在使用AOF持久化方式時,可以選擇使用Redis Sentinel來進行管理和監(jiān)控。這樣可以在主節(jié)點出現問題時,自動進行切換,保證Redis服務不受影響。

3.3 AOF能干嘛?

快照功能并不是非常耐久(dura ble): 如果 Redis 因為某些原因而造成故障停機, 那么服務器將丟失最近寫入、且仍未保存到快照中的那些數據。 從 1.1 版本開始, Redis 增加了一種完全耐久的持久化方式: AOF 持久化。

你可以在配置文件中打開AOF方式:

appendonly yes

從現在開始, 每當 Redis 執(zhí)行一個改變數據集的命令時(比如 SET), 這個命令就會被追加到 AOF 文件的末尾。這樣的話, 當 Redis 重新啟時, 程序就可以通過重新執(zhí)行 AOF 文件中的命令來達到重建數據集的目的。

4、RDB-AOF混合持久化

你也可以同時開啟兩種持久化方式, 在這種情況下, 當redis重啟的時候會優(yōu)先載入AOF文件來恢復原始的數據,因為在通常情況下AOF文件保存的數據集要比RDB文件保存的數據集要完整

4.1 RDB 的優(yōu)點和缺點

優(yōu)點

  • 對于大型數據集,RDB 恢復時的速度比 AOF 要快。
  • RDB 文件可以作為備份數據庫。

缺點

  • 如果 Redis 發(fā)生故障,最后一次持久化之后的所有更改都會丟失。
  • RDB 文件的大小可能比 AOF 文件大。

4.2 AOF 的優(yōu)點和缺點

優(yōu)點

  • 對于小型數據集,AOF 恢復速度更快。
  • AOF 文件保存了 Redis 數據庫的完整操作記錄,即使 Redis 發(fā)生故障,也可以盡可能地少丟失數據。

缺點

  • AOF 文件通常比 RDB 文件更大。
  • 恢復數據所需的時間可能比 RDB 更長。

 4.3 數據恢復順序和加載流程

在同時開開啟rdb和aof持久化,重啟是只會加載aof文件,不會加載rdb文件

4.4 同時開啟兩種持久化方式

在這種情況下,當redis重啟的時候會優(yōu)先載入AOF文件來恢復原始的數據,因為在通常情況下AOF文件保存的數據集比RDB文件保存的數據集要完整

RDB的數據不實,同時使用兩者是服務器重啟也只會找AOF文件,那要不要只使用AOF呢?

作者建議不要,因為RDB跟適合用于備份數據庫(AOF在不斷變化不好備份),留著RDB作為一個萬一的手段

4.5 推薦方式

RDB+AOF混合方式

結合了RDB和AOF的優(yōu)點,既能快輸加載又能避免丟失過多的數據

  • 開啟 RDB+AOF 的混合持久化方式。你可以通過設置 aof-use-rdb-preamble 來開啟這種持久化方式。
aof-use-rdb-preamble yes

先使用RDB進行快照存儲,然后使用AOF持久化記錄所有寫操作,當重寫策略滿足或手動觸發(fā)重寫的時候,將最新的數據存儲為新的RDB記錄。這樣的話,重啟服務器的時候會從RDB和AOF兩部分恢復數據,既能保證數據完整性,又能提高恢復數據的性能

5、注意事項

在實際應用中,使用Redis持久化時需要注意以下問題:

  • 定期備份:定期備份Redis中的數據。
  • 備份機和生產機不能共存:為避免數據丟失,在備份機和生產機之間需要進行物理隔離。
  • 恢復備份數據時需要重啟Redis:使用RDB方式備份數據時,恢復備份數據需要重啟Redis服務。而使用AOF方式備份數據時,恢復備份數據則需要將AOF文件導入到一個新的Redis實例中。在進行恢復操作時,需要特別小心,以避免損壞數據。
  • 合理配置參數:合理設置最大連接數和最大數據包大小,以避免出現Redis性能瓶頸??梢酝ㄟ^修改Redis.conf文件來設置這些參數。
  • 而使用AOF方式備份數據時,恢復備份數據則需要將AOF文件導入到一個新的Redis實例中。在進行恢復操作時,需要特別小心,以避免損壞數據。
  • 合理配置參數:合理設置最大連接數和最大數據包大小,以避免出現Redis性能瓶頸??梢酝ㄟ^修改Redis.conf文件來設置這些參數。

以上就是關于Redis持久化的深入探究的詳細內容,更多關于Redis持久化的資料請關注腳本之家其它相關文章!

相關文章

  • redis list類型命令的實現

    redis list類型命令的實現

    本文主要介紹了redis list類型命令的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Redis內存空間占用及避免數據丟失的方法

    Redis內存空間占用及避免數據丟失的方法

    在現代的互聯網應用中,Redis作為一種高性能的內存數據庫,被廣泛應用于緩存、會話管理和消息隊列等場景,然而,Redis的內存資源是有限的,過多的內存占用可能會導致數據丟失所以本文將給大家介紹一下Redis內存空間占用及避免數據丟失的方法
    2023-08-08
  • Redis自增生成id的方法實踐

    Redis自增生成id的方法實踐

    在使用Redis時,常常需要用到自增ID的功能,主要介紹了Redis自增生成id的方法實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 關于redigo中PubSub的一點小坑分析

    關于redigo中PubSub的一點小坑分析

    這篇文章主要給大家介紹了關于redigo中PubSub的一點小坑的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • 淺析Redis Sentinel 與 Redis Cluster

    淺析Redis Sentinel 與 Redis Cluster

    本文主要介紹Redis Sentinel 及 Redis Cluster的區(qū)別及用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-06-06
  • 詳解Redis中地理位置功能Geospatial的應用

    詳解Redis中地理位置功能Geospatial的應用

    Geospatial?Indexes?是?Redis?提供的一種數據結構,用于存儲和查詢地理位置信息,這篇文章就來和大家詳細講講Geospatial的具體應用吧
    2023-06-06
  • redis實現主從模式(1主2從)

    redis實現主從模式(1主2從)

    本文主要介紹了在Windows環(huán)境下搭建和測試Redis的主從復制模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • 手動實現Redis的LRU緩存機制示例詳解

    手動實現Redis的LRU緩存機制示例詳解

    這篇文章主要介紹了手動實現Redis的LRU緩存機制示例詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 百行代碼實現基于Redis的可靠延遲隊列

    百行代碼實現基于Redis的可靠延遲隊列

    本文主要介紹了百行代碼實現基于Redis的可靠延遲隊列,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Redis高階之容錯切換的實現

    Redis高階之容錯切換的實現

    本文主要介紹了Redis高階之容錯切換的實現,當一臺主節(jié)點宕機后,從節(jié)點會自動接管成為新的主節(jié)點,當原主節(jié)點恢復后,它不會自動成為主節(jié)點,需要通過手動操作將其重新設置為從節(jié)點,感興趣的可以了解一下
    2025-02-02

最新評論