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

關(guān)于Redis持久化的深入探究

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

Redis持久化

官網(wǎng)地址:Redis persistence | Redis

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

1、為什么需要持久化?

reids是內(nèi)存數(shù)據(jù)庫(kù),內(nèi)存一斷電或者宕機(jī)數(shù)據(jù)就消失了沒(méi)有了,需要redis中的數(shù)據(jù)長(zhǎng)期持有,它重啟宕機(jī)恢復(fù)過(guò)來(lái)之后還是能從磁盤讀回之前的數(shù)據(jù)

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

2、RDB(Redis Database)

2.1 官網(wǎng)介紹

RDB(Redis 數(shù)據(jù)庫(kù)):RDB 持久性以指定的時(shí)間間隔執(zhí)行數(shù)據(jù)集的時(shí)間點(diǎn)快照

2.2 什么是RDB

RDB持久化方式將Redis服務(wù)器中某個(gè)時(shí)間點(diǎn)的所有鍵值對(duì)集合寫入一個(gè)快照文件。這個(gè)快照文件可以在Redis發(fā)生宕機(jī)時(shí)用于數(shù)據(jù)恢復(fù)。

RDB持久化方式的優(yōu)點(diǎn)是在恢復(fù)數(shù)據(jù)時(shí)速度較快,缺點(diǎn)是如果Redis服務(wù)器宕機(jī)時(shí)未保存快照文件,會(huì)丟失部分?jǐn)?shù)據(jù)。

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

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?

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

默認(rèn)情況下,redis是沒(méi)有開(kāi)啟AOF(append only file)的。開(kāi)啟AOF功能需要設(shè)置配置:appendonly yes

3.2 AOF持久化方式

AOF持久化方式是通過(guò)記錄Redis執(zhí)行過(guò)的寫命令來(lái)恢復(fù)數(shù)據(jù)。當(dāng)Redis服務(wù)器重啟時(shí),會(huì)通過(guò)執(zhí)行AOF文件中的命令來(lái)恢復(fù)數(shù)據(jù)。AOF持久化方式相對(duì)于RDB持久化方式而言,可靠性更高,但磁盤消耗較大。

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

為了保證Redis的數(shù)據(jù)安全性,在使用AOF持久化方式時(shí),可以選擇使用Redis Sentinel來(lái)進(jìn)行管理和監(jiān)控。這樣可以在主節(jié)點(diǎn)出現(xiàn)問(wèn)題時(shí),自動(dòng)進(jìn)行切換,保證Redis服務(wù)不受影響。

3.3 AOF能干嘛?

快照功能并不是非常耐久(dura ble): 如果 Redis 因?yàn)槟承┰蚨斐晒收贤C(jī), 那么服務(wù)器將丟失最近寫入、且仍未保存到快照中的那些數(shù)據(jù)。 從 1.1 版本開(kāi)始, Redis 增加了一種完全耐久的持久化方式: AOF 持久化。

你可以在配置文件中打開(kāi)AOF方式:

appendonly yes

從現(xiàn)在開(kāi)始, 每當(dāng) Redis 執(zhí)行一個(gè)改變數(shù)據(jù)集的命令時(shí)(比如 SET), 這個(gè)命令就會(huì)被追加到 AOF 文件的末尾。這樣的話, 當(dāng) Redis 重新啟時(shí), 程序就可以通過(guò)重新執(zhí)行 AOF 文件中的命令來(lái)達(dá)到重建數(shù)據(jù)集的目的。

4、RDB-AOF混合持久化

你也可以同時(shí)開(kāi)啟兩種持久化方式, 在這種情況下, 當(dāng)redis重啟的時(shí)候會(huì)優(yōu)先載入AOF文件來(lái)恢復(fù)原始的數(shù)據(jù),因?yàn)樵谕ǔG闆r下AOF文件保存的數(shù)據(jù)集要比RDB文件保存的數(shù)據(jù)集要完整

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

優(yōu)點(diǎn)

  • 對(duì)于大型數(shù)據(jù)集,RDB 恢復(fù)時(shí)的速度比 AOF 要快。
  • RDB 文件可以作為備份數(shù)據(jù)庫(kù)。

缺點(diǎn)

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

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

優(yōu)點(diǎn)

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

缺點(diǎn)

  • AOF 文件通常比 RDB 文件更大。
  • 恢復(fù)數(shù)據(jù)所需的時(shí)間可能比 RDB 更長(zhǎng)。

 4.3 數(shù)據(jù)恢復(fù)順序和加載流程

在同時(shí)開(kāi)開(kāi)啟rdb和aof持久化,重啟是只會(huì)加載aof文件,不會(huì)加載rdb文件

4.4 同時(shí)開(kāi)啟兩種持久化方式

在這種情況下,當(dāng)redis重啟的時(shí)候會(huì)優(yōu)先載入AOF文件來(lái)恢復(fù)原始的數(shù)據(jù),因?yàn)樵谕ǔG闆r下AOF文件保存的數(shù)據(jù)集比RDB文件保存的數(shù)據(jù)集要完整

RDB的數(shù)據(jù)不實(shí),同時(shí)使用兩者是服務(wù)器重啟也只會(huì)找AOF文件,那要不要只使用AOF呢?

作者建議不要,因?yàn)镽DB跟適合用于備份數(shù)據(jù)庫(kù)(AOF在不斷變化不好備份),留著RDB作為一個(gè)萬(wàn)一的手段

4.5 推薦方式

RDB+AOF混合方式

結(jié)合了RDB和AOF的優(yōu)點(diǎn),既能快輸加載又能避免丟失過(guò)多的數(shù)據(jù)

  • 開(kāi)啟 RDB+AOF 的混合持久化方式。你可以通過(guò)設(shè)置 aof-use-rdb-preamble 來(lái)開(kāi)啟這種持久化方式。
aof-use-rdb-preamble yes

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

5、注意事項(xiàng)

在實(shí)際應(yīng)用中,使用Redis持久化時(shí)需要注意以下問(wèn)題:

  • 定期備份:定期備份Redis中的數(shù)據(jù)。
  • 備份機(jī)和生產(chǎn)機(jī)不能共存:為避免數(shù)據(jù)丟失,在備份機(jī)和生產(chǎn)機(jī)之間需要進(jìn)行物理隔離。
  • 恢復(fù)備份數(shù)據(jù)時(shí)需要重啟Redis:使用RDB方式備份數(shù)據(jù)時(shí),恢復(fù)備份數(shù)據(jù)需要重啟Redis服務(wù)。而使用AOF方式備份數(shù)據(jù)時(shí),恢復(fù)備份數(shù)據(jù)則需要將AOF文件導(dǎo)入到一個(gè)新的Redis實(shí)例中。在進(jìn)行恢復(fù)操作時(shí),需要特別小心,以避免損壞數(shù)據(jù)。
  • 合理配置參數(shù):合理設(shè)置最大連接數(shù)和最大數(shù)據(jù)包大小,以避免出現(xiàn)Redis性能瓶頸。可以通過(guò)修改Redis.conf文件來(lái)設(shè)置這些參數(shù)。
  • 而使用AOF方式備份數(shù)據(jù)時(shí),恢復(fù)備份數(shù)據(jù)則需要將AOF文件導(dǎo)入到一個(gè)新的Redis實(shí)例中。在進(jìn)行恢復(fù)操作時(shí),需要特別小心,以避免損壞數(shù)據(jù)。
  • 合理配置參數(shù):合理設(shè)置最大連接數(shù)和最大數(shù)據(jù)包大小,以避免出現(xiàn)Redis性能瓶頸??梢酝ㄟ^(guò)修改Redis.conf文件來(lái)設(shè)置這些參數(shù)。

以上就是關(guān)于Redis持久化的深入探究的詳細(xì)內(nèi)容,更多關(guān)于Redis持久化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • redis list類型命令的實(shí)現(xiàn)

    redis list類型命令的實(shí)現(xiàn)

    本文主要介紹了redis list類型命令的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Redis內(nèi)存空間占用及避免數(shù)據(jù)丟失的方法

    Redis內(nèi)存空間占用及避免數(shù)據(jù)丟失的方法

    在現(xiàn)代的互聯(lián)網(wǎng)應(yīng)用中,Redis作為一種高性能的內(nèi)存數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、會(huì)話管理和消息隊(duì)列等場(chǎng)景,然而,Redis的內(nèi)存資源是有限的,過(guò)多的內(nèi)存占用可能會(huì)導(dǎo)致數(shù)據(jù)丟失所以本文將給大家介紹一下Redis內(nèi)存空間占用及避免數(shù)據(jù)丟失的方法
    2023-08-08
  • Redis自增生成id的方法實(shí)踐

    Redis自增生成id的方法實(shí)踐

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

    關(guān)于redigo中PubSub的一點(diǎn)小坑分析

    這篇文章主要給大家介紹了關(guān)于redigo中PubSub的一點(diǎn)小坑的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 淺析Redis Sentinel 與 Redis Cluster

    淺析Redis Sentinel 與 Redis Cluster

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

    詳解Redis中地理位置功能Geospatial的應(yīng)用

    Geospatial?Indexes?是?Redis?提供的一種數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)和查詢地理位置信息,這篇文章就來(lái)和大家詳細(xì)講講Geospatial的具體應(yīng)用吧
    2023-06-06
  • redis實(shí)現(xiàn)主從模式(1主2從)

    redis實(shí)現(xiàn)主從模式(1主2從)

    本文主要介紹了在Windows環(huán)境下搭建和測(cè)試Redis的主從復(fù)制模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 手動(dòng)實(shí)現(xiàn)Redis的LRU緩存機(jī)制示例詳解

    手動(dòng)實(shí)現(xiàn)Redis的LRU緩存機(jī)制示例詳解

    這篇文章主要介紹了手動(dòng)實(shí)現(xiàn)Redis的LRU緩存機(jī)制示例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 百行代碼實(shí)現(xiàn)基于Redis的可靠延遲隊(duì)列

    百行代碼實(shí)現(xiàn)基于Redis的可靠延遲隊(duì)列

    本文主要介紹了百行代碼實(shí)現(xiàn)基于Redis的可靠延遲隊(duì)列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Redis高階之容錯(cuò)切換的實(shí)現(xiàn)

    Redis高階之容錯(cuò)切換的實(shí)現(xiàn)

    本文主要介紹了Redis高階之容錯(cuò)切換的實(shí)現(xiàn),當(dāng)一臺(tái)主節(jié)點(diǎn)宕機(jī)后,從節(jié)點(diǎn)會(huì)自動(dòng)接管成為新的主節(jié)點(diǎn),當(dāng)原主節(jié)點(diǎn)恢復(fù)后,它不會(huì)自動(dòng)成為主節(jié)點(diǎn),需要通過(guò)手動(dòng)操作將其重新設(shè)置為從節(jié)點(diǎn),感興趣的可以了解一下
    2025-02-02

最新評(píng)論