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

Redis的持久化方式

 更新時間:2024年10月24日 08:42:27   作者:Carver0808  
Redis提供了兩種主要的持久化方式:RDB和AOF,RDB通過定時快照的方式保存數(shù)據(jù)狀態(tài),而AOF記錄每個寫操作以便于重啟時重放,兩者可以結(jié)合使用,且在重啟時AOF文件會被優(yōu)先用于數(shù)據(jù)恢復(fù),RDB快照具有速度快、節(jié)省磁盤空間的優(yōu)點,但可能會丟失最近的數(shù)據(jù)

一、概述

Redis提供了不同的持久性選項:

RDB持久性按指定的時間間隔執(zhí)行數(shù)據(jù)集的時間點快照。

AOF持久性會記錄服務(wù)器接收的每個寫入操作,這些操作將在服務(wù)器啟動時再次播放,以重建原始數(shù)據(jù)集。使用與Redis協(xié)議本身相同的格式記錄命令,并且僅采用追加方式。當(dāng)日志太大時,Redis可以在后臺重寫日志。

如果您希望,只要您的數(shù)據(jù)在服務(wù)器運行時就一直存在,則可以完全禁用持久性。

可以在同一實例中同時合并AOF和RDB。請注意,在這種情況下,Redis重新啟動時,AOF文件將用于重建原始數(shù)據(jù)集,因為它可以保證是最完整的。

Redis提供了不同的持久性方式,即為RDB和AOF兩種持久化方式,RDB持久化是指,在指定的時間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集寫入到磁盤中,這個時間間隔可以在配置文件中手動配置,而AOF持久化則記錄的時每個寫入的操作而不是數(shù)據(jù)集,在恢復(fù)數(shù)據(jù)時,在服務(wù)器啟動時再一次執(zhí)行寫入操作,重新建立數(shù)據(jù),為了避免AOF文件會越來越大,AOF采用文件追加的方式,當(dāng)AOF的大小超過所設(shè)定的閾值時,redis會啟動AOF的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集。

在redis中同時開啟AOF和RDB兩種持久化方式,redis默認(rèn)優(yōu)先取AOF的數(shù)據(jù)。

二、Redis持久化–RDB

1、RDB的保存文件和保存路徑

在redis的redis.conf可以指定RDB保存文件名字,文件名以.rdb結(jié)尾,如下圖dump.rdb。可以在redis.conf中指定,RDB文件的保存路徑,如下圖RDB文件將會保存在/opt/myRedis/redis_dbfile/目錄下

2、RDB的保存策略

  • 保存策略一

自動備份規(guī)則(滿足以下三種條件其中之一則生成rdb文件)

save 900 1		 #900秒內(nèi)完成1次對數(shù)據(jù)的改變
save 300 10		 #300秒內(nèi)完成1次對數(shù)據(jù)的改變
save 60 10000    #一分鐘內(nèi)完成1次對數(shù)據(jù)的改變	
  • 保存策略二

正常關(guān)閉redis觸發(fā)持久化,如使用shutdown命令關(guān)閉redis(shutdown),如下圖:

3、RDB持久相關(guān)配置(在redis.conf配置文件中)

stop-writes-on-bgsave-error yes 后臺存儲存儲發(fā)生錯誤時禁止寫入

  • 默認(rèn)為yesrdbcompression yes 啟動rdb文件壓縮,耗費CPU資源
  • 默認(rèn)為yesrdbchecksum yes 對rdb數(shù)據(jù)進(jìn)行校驗,耗費CPU資源
  • 默認(rèn)為yesdbfilename dump.rdb rdb文件名稱dir ./ rdb文件保存目錄

4、RDB的備份與恢復(fù)

RDB的備份

先通過config get dir 查詢到rdb文件的目錄,然后再將*.rdb文件拷貝到別的地方,簡單來說就是找到你需要備份的rdb文件,然后拷貝就完成了rdb的備份

RDB的恢復(fù)

  • a.關(guān)閉redis
  • b.把rdb文件放到redis的工作目錄下
  • c.啟動redis,備份的數(shù)據(jù)就會直接加載

5、RDB的優(yōu)缺點

優(yōu)點:

節(jié)省磁盤空間恢復(fù)數(shù)據(jù)速度快

缺點:

雖然redis在持久化創(chuàng)建一個子線程進(jìn)行持久化,并且使用了“寫時復(fù)制”技術(shù),但是如果數(shù)據(jù)足夠龐大還是比較消耗性能的。

在一定間隔時間做一次備份,所以如果redis意外down掉的話,就會丟失最后一次快照后的所有修改

三、Redis持久化–AOF

1、AOF的保存文件和保存路徑

AOF默認(rèn)是不開啟的,需要在配置文件中手動配置,如下圖在redis.conf中將appendonly設(shè)置為yes表示開啟AOF持久化,appendfilename參數(shù)表示AOF保存文件,AOF文件保存路徑和RDB文件保存路徑一致,即設(shè)置dir參數(shù)

2、AOF的保存策略

在配置文件中設(shè)置AOF保存策略,當(dāng)appendfsync屬性設(shè)置為always表示每次redis的寫入都會被記入日志;

everysec表示每秒記入日志一次,如果宕機(jī),本秒的數(shù)據(jù)可能丟失;

no表示不主動記入

3、AOF的重寫機(jī)制

AOF是通過記錄redis的寫入命令來實現(xiàn)持久化的,在恢復(fù)數(shù)據(jù)時,在服務(wù)器啟動時再一次執(zhí)行寫入操作,重新建立數(shù)據(jù),所以問題就誕生了,AOF文件的大小隨著時間的流逝一定會越來越大,大大影響了redis服務(wù)器的性能,避免出現(xiàn)此種情況,AOF新增了重寫機(jī)制,當(dāng)AOF文件的大小超過所設(shè)定的閾值時,Redis就會啟動AOF文件的內(nèi)容壓縮,只保留可以恢復(fù)數(shù)據(jù)的最小指令集.如下圖實例,AOF用一條rpush list “B” “D” “E” “F” “G” “a” "b"代替前面的5條命令。

4、AOF的備份與恢復(fù)

AOF的備份和恢復(fù)和RDB的備份和恢復(fù)操作一致,都是拷貝備份文件,需要恢復(fù)時將備份文件放到redis的工作目錄下,啟動系統(tǒng)即加載數(shù)據(jù)。

注意:當(dāng)AOF和RDB同時開啟時,系統(tǒng)默認(rèn)取AOF的數(shù)據(jù)。

5、AOF的優(yōu)缺點

優(yōu)點:

備份機(jī)制更健壯,丟失數(shù)據(jù)的概率更低可讀的持久化日志文本,通過操作AOF穩(wěn)健,可以處理誤操作

缺點:

比起RDB占用更多的磁盤空間恢復(fù)數(shù)據(jù)比RDB慢每次讀寫都寫入AOF的話,有一定的性能壓力存在個別bug,造成恢復(fù)不能

四、兩種持久化方式如何選型

1、官方推薦兩個都使用

2、如果對數(shù)據(jù)不敏感,可以選單獨用RDB

3、不建議單獨使用AOF,因為會出現(xiàn)個別bug

4、如果只是做純內(nèi)存緩存,可以都不用

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis瞬時高并發(fā)秒殺方案總結(jié)

    Redis瞬時高并發(fā)秒殺方案總結(jié)

    本文講述了Redis瞬時高并發(fā)秒殺方案總結(jié),具有很好的參考價值,感興趣的小伙伴們可以參考一下,具體如下:
    2018-05-05
  • Redis緩存鍵清理問題解決

    Redis緩存鍵清理問題解決

    對于使用redis作為緩存服務(wù)器的開發(fā)者而言,定期清除redis中的緩存數(shù)據(jù)是非常必要的,本文主要介紹了Redis緩存鍵清理問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Redis常用的數(shù)據(jù)結(jié)構(gòu)及實際應(yīng)用場景

    Redis常用的數(shù)據(jù)結(jié)構(gòu)及實際應(yīng)用場景

    本文介紹了Redis中常用的數(shù)據(jù)結(jié)構(gòu),包括字符串、列表、集合、哈希表、有序集合和Bitmap,并詳細(xì)說明了它們在各種場景下的使用,需要的朋友可以參考下
    2024-05-05
  • Redis 鍵值設(shè)計使用總結(jié)

    Redis 鍵值設(shè)計使用總結(jié)

    這篇文章主要介紹了Redis鍵值設(shè)計的使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Redis Cluster 字段模糊匹配及刪除

    Redis Cluster 字段模糊匹配及刪除

    在數(shù)據(jù)庫內(nèi)我們可以通過like關(guān)鍵字、%、*或者REGEX關(guān)鍵字進(jìn)行模糊匹配。而在Redis內(nèi)我們?nèi)绾芜M(jìn)行模糊匹配呢?本文就來介紹一下
    2021-05-05
  • redis過期回調(diào)坑的解決

    redis過期回調(diào)坑的解決

    Redis提供了一種過期回調(diào)的機(jī)制,可以在某個鍵過期時觸發(fā)一個回調(diào)函數(shù),然而,在實際使用中,我們往往會遇到一些災(zāi)難性的問題,其中一個就是在使用過期回調(diào)的時候,我們可能會遭遇到無法預(yù)料的錯誤,本文就詳細(xì)的介紹一下
    2023-09-09
  • Redis保證數(shù)據(jù)不丟失的兩種方法

    Redis保證數(shù)據(jù)不丟失的兩種方法

    Redis 實現(xiàn)數(shù)據(jù)不丟失的關(guān)鍵在于使用了多種持久化機(jī)制,以確保數(shù)據(jù)在內(nèi)存和磁盤之間的持久性,本文給大家介紹了Redis保證數(shù)據(jù)不丟失的兩種方法,持久化和集群運行,我們分別來看它們兩的具體實現(xiàn)細(xì)節(jié),感興趣的同學(xué)跟著小編一起來看看吧
    2023-11-11
  • Redis常見數(shù)據(jù)類型List列表使用詳解

    Redis常見數(shù)據(jù)類型List列表使用詳解

    Redis的List是一種有序的字符串集合,支持兩端高效插入和刪除,適用于隊列和棧,這篇文章主要介紹了Redis常見數(shù)據(jù)類型List列表使用的相關(guān)資料,需要的朋友可以參考下
    2024-12-12
  • Redis存儲的列表分頁和檢索的實現(xiàn)方法

    Redis存儲的列表分頁和檢索的實現(xiàn)方法

    在 Redis 中,列表(List)是一種有序的數(shù)據(jù)結(jié)構(gòu),通常用于存儲一系列元素,由于列表是有序的,可以通過索引來訪問元素,因此可以很方便地實現(xiàn)分頁和檢索功能,以下是 Redis 列表的分頁和檢索的實現(xiàn)方法,需要的朋友可以參考下
    2025-02-02
  • redis實現(xiàn)共同好友的思路詳解

    redis實現(xiàn)共同好友的思路詳解

    微信朋友圈大家都玩過吧,那么朋友圈的點贊、評論只能看到自己好友的信息是怎么操作的呢?下面通過本文給大家分享下此功能的實現(xiàn)流程,對redis實現(xiàn)共同好友的方法感興趣的朋友一起看看吧
    2021-05-05

最新評論