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

【2023】Redis數(shù)據(jù)持久化

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

1.為什么需要Redis持久化

Redis是基于內(nèi)存的NoSQL數(shù)據(jù)庫,讀寫速度很快,但是存儲在內(nèi)存中的Redis數(shù)據(jù)會在服務(wù)器重啟后丟失。
然而在一些場景中,需要長久的保存數(shù)據(jù),所以需要把內(nèi)存中的數(shù)據(jù)持久化的保存在硬盤中。

Redis持久化提供兩種方式:

1??:AOF(Append Only File)只追加文件
2??:RDB(Redis DataBase)基于Redis數(shù)據(jù)庫

2.Redis持久化機制概述

2.1.基于AOF的持久化機制

Redis的AOF持久化是指將數(shù)據(jù)存儲到二進(jìn)制日志文件中,以便在重啟或出現(xiàn)故障時可以恢復(fù)數(shù)據(jù)。

AOF持久化會周期性地將數(shù)據(jù)寫入到日志文件中,因此可以實現(xiàn)更高的數(shù)據(jù)備份頻率。

在使用基于AOF的持久化方式時,需要注意以下幾點:

  • 寫入日志文件的數(shù)據(jù)會占用一定的存儲空間,因此需要考慮磁盤空間的問題。
  • 基于AOF的持久化方式需要消耗一定的系統(tǒng)資源,包括寫入日志文件的時間和空間、維護AOF文件的開銷等。因此在高并發(fā)場景下,需要根據(jù)實際情況進(jìn)行調(diào)整。
  • 基于AOF的持久化方式可以通過配置日志文件的大小和頻率來調(diào)整備份數(shù)據(jù)的頻率和大小,以滿足不同場景的需求。
  • 在使用基于AOF的持久化方式時,需要注意防止系統(tǒng)故障或重啟導(dǎo)致數(shù)據(jù)丟失,可以通過定期備份或使用其他持久化方式(如RDB持久化)來增強數(shù)據(jù)保護能力。

2.2.基于RDB的持久化機制

基于RDB的持久化方式會把當(dāng)前內(nèi)存中所有Redis鍵值對數(shù)據(jù)以快照(snapshot)的方式寫入硬盤文件中,如果需要恢復(fù)數(shù)據(jù),就把快照文件讀到內(nèi)存中。

RDB持久化的主要優(yōu)點是數(shù)據(jù)可以快速恢復(fù),而且不需要消耗太多的系統(tǒng)資源。

但是,RDB持久化也有一些缺點,如數(shù)據(jù)在內(nèi)存中的寫入和查詢效率可能會受到一定的影響,并且RDB持久化方式不支持快速的數(shù)據(jù)備份和恢復(fù)。

因此,在實際應(yīng)用中,需要根據(jù)具體場景選擇適合的持久化方式。

3.AOF持久化機制實戰(zhàn)

3.1.AOF方式持久化機制實戰(zhàn)

可以通過設(shè)置配置文件里的參數(shù)來啟動或停止AOF持久化機制,由于基于AOF的持久化方式具有實時存儲的特性,因此可以在讀寫關(guān)鍵數(shù)據(jù)時開啟,以防因Redis重啟或故障而導(dǎo)致的風(fēng)險。

AOF配置文件參數(shù)說明:通過redis.conf來配置AOF

  • 開啟AOF持久化,關(guān)閉注視掉即可
appendonly yes
  • 設(shè)置持久化策略(always、everysec、no)
appendfsync everysec

1??:always:每次觸發(fā)寫操作都會觸發(fā)持久化操作,可能會影響redis自身及redis服務(wù)器性能
2??:everysec:會以1秒頻率觸發(fā)持久化動作,這種方式能很好平衡持久化需求和性能間關(guān)系
3??:no:由操作系統(tǒng)決定持久化頻率,這種方式對其他另外兩種而言性能最好,但可能每次持久化操作間的間隔有些長,這樣當(dāng)故障發(fā)生時可能會丟失較多的數(shù)據(jù)。

  • 持久化文件所在路徑和文件名
dir ./
appendfilename "appendonly.aof"
  • 平衡性能與安全性:取值為yes,那么在重寫AOF文件時能提升性能,但可能在重寫AOF文件時丟失數(shù)據(jù);如果取值為no,則不會丟失數(shù)據(jù),但較取值為yes的性能可能會降低。
no-appendfsync-on-rewrite no
  • 指定重寫條件:如果當(dāng)前的AOF文件比上次執(zhí)行重寫時的文件大100%時會再次觸發(fā)重寫操作。如果該參數(shù)取值為0,則不會觸發(fā)重寫操作。
auto-aof-rewrite-percentage 100
  • 指定觸發(fā)重寫時AOF文件大小
auto-aof-rewrite-min-size 64mb

注意:,由auto-aof-rewrite-percentageauto-aof-rewrite-min-size兩個參數(shù)指定的重寫條件是“And”的關(guān)系,即只有當(dāng)同時滿足這兩個條件時才會觸發(fā)重寫操作,比如當(dāng)前AOF文件的大小小于auto-aof-rewrite-min-size參數(shù)指定的值,哪怕文件增幅達(dá)到no-appendfsync-on- rewrite參數(shù)指定的范圍,也不會觸發(fā)重寫操作。

實踐:

  • 配置reids AOF持久化配置文件:redis.conf,配置后重啟redis
dir /data
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

注意:啟動redis時指定配置文件

redis-server /path/to/redis.conf
  • 連接redis服務(wù)器,創(chuàng)建一些數(shù)據(jù)
[root@localhost ~]# redis-cli 
127.0.0.1:6379> get name001
(nil)
127.0.0.1:6379> set name001 'xiaoming'
OK
127.0.0.1:6379> set age001 30
OK

如果配置成功,當(dāng)前是開啟AOF持久化的,應(yīng)該會有數(shù)據(jù)

[root@localhost redis-6.2.12]# cd /data/
[root@localhost data]# ls
appendonly.aof
[root@localhost data]# cat appendonly.aof 
*2
$6
SELECT
$1
0
*3
$3
set
$7
name001
$8
xiaoming
*3
$3
set
$6
age001
$2
30

以上數(shù)據(jù)即為持久化文件的內(nèi)容:
選擇0號數(shù)據(jù)庫,插入兩條鍵值對

3.2.重寫AOF文件的效果

  • 向數(shù)據(jù)庫插入一個列表
[root@localhost ~]# redis-cli
127.0.0.1:6379> lpush namelist "yy1"
(integer) 1
127.0.0.1:6379> lpush namelist "yy2"
(integer) 2
127.0.0.1:6379> lpush namelist "yy3"
(integer) 3
127.0.0.1:6379> lpush namelist "yy4"
(integer) 4
  • 查看持久化文件內(nèi)容
*3
$5
lpush
$8
namelist
$3
yy1
*3
$5
lpush
$8
namelist
$3
yy2
*3
$5
lpush
$8
namelist
$3
yy3
*3
$5
lpush
$8
namelist
$3
yy4
  • 運行bgrewriteaof命令手動觸發(fā)AOF文件的重寫動作,然后打開文件查看
127.0.0.1:6379> BGREWRITEAOF
Background append only file rewriting started
REDIS0009ú      redis-ver^F6.2.12ú
redis-bitsà@ú^Ectime?^<8b><91>dú^Hused-mem?HW^M^@ú^Laof-preambleà^At^@?^C^@^@^Fage001à^^^@^Gname001^Hxiaoming^N^Hnamelist^A^_^_^@^@^@^Y^@^@^@^D^@^@^Cyy4^E^Cyy3^E^Cyy2^E^Cyy1??^?d^_5μ<82>{^?

3.3.模擬數(shù)據(jù)恢復(fù)

  • 停止該redis服務(wù)器并重新啟動一個新的服務(wù)器
[root@localhost data]# ps -ef | grep 6379
root       1943      1  0 19:03 ?        00:00:03 redis-server 127.0.0.1:6379
root       1993   1314  0 19:24 pts/0    00:00:00 grep --color=auto 6379
[root@localhost data]# kill -9 1943
redis-server /root/redis-6.2.12/redis.conf 
  • 連接服務(wù)器查看數(shù)據(jù)、創(chuàng)建數(shù)據(jù)、清空內(nèi)存數(shù)據(jù)
127.0.0.1:6379> get name001
"xiaoming"
127.0.0.1:6379> get age001
"30"
127.0.0.1:6379> set name002 xiaoli
OK
127.0.0.1:6379> set age002 21
OK
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> get name002
(nil)
127.0.0.1:6379> get age002
(nil)
  • 查看持久化文件,包含剛才執(zhí)行的數(shù)據(jù)
*3
$3
set
$7
name002
$6
xiaoli
*3
$3
set
$6
age002
$2
21
*1
$8
FLUSHALL
  • 退出客戶端,停止運行redis服務(wù)器,刪除持久化文件中的FLUSHALL,不然執(zhí)行后還會清空
  • 重啟啟動redis服務(wù)器,查看數(shù)據(jù)
[root@localhost ~]# redis-cli 
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> get name002
"xiaoli"
127.0.0.1:6379> get age002
"21"

看到此內(nèi)容證明恢復(fù)成功

3.4.修復(fù)AOF文件

報錯:

"Bad file format reading the append only file: make a backup of your AOF file, then use ./redis-check-aof --fix <filename>"

代表AOF文件格式不正確

解決:

redis-check-aof --fix /data/appendonly.aof

后面加你自己的aof文件路徑,即可修復(fù)成功。

文件損壞也會導(dǎo)致redis啟動失敗。

4.RDB持久化機制實踐

在基于RDB的持久化機制里會定時把Redis內(nèi)存數(shù)據(jù)以快照的方式保存到硬盤上,而在必要的時候可以通過快照文件來恢復(fù)數(shù)據(jù)。

4.1.修改基于RDB的配置文件

  • 為了方便區(qū)分,先把基于AOF的配置關(guān)閉,只配置RDB相關(guān)配置
appendonly no

save 600 1
save 300 100
save 60 1000

1??:第1行代碼表示當(dāng)在600秒內(nèi)有1個或1個以上的鍵被修改時就會生成快照
2??:第2行代碼表示在300秒內(nèi)有大于或等于100個鍵被修改時就會生成快照
3??:第3行表示在60秒內(nèi)有大于或等于1000個鍵被修改時會生成快照。
注意:三者是或的關(guān)系,滿足一條即可觸發(fā)

  • 設(shè)置文件名及路徑
dbfilename dump.rdb
dir /data

4.2.創(chuàng)建Redis服務(wù)器進(jìn)行測試

  • 啟動redis服務(wù)器
[root@localhost redis-6.2.12]# redis-server redis.conf 
  • 連接服務(wù)器創(chuàng)建一條數(shù)據(jù)
[root@localhost ~]# redis-cli
127.0.0.1:6379> set id001 001
OK
127.0.0.1:6379> set id002 002
OK
  • 此時已經(jīng)有rdb文件
[root@localhost redis-6.2.12]# cd /data/
[root@localhost data]# ls
appendonly.aof  dump.rdb
[root@localhost data]# cat dump.rdb 
REDIS0009	redis-ver6.2.12
redis-bits????eêused-mem@V
aof-preamble@r? [root@localhost data]# Xshell
  • 恢復(fù)數(shù)據(jù)與AOF類似,停止服務(wù)器重啟創(chuàng)建即可自動恢復(fù)數(shù)據(jù)。

5.如何選用持久化方式

在Redis里,基于AOF和RDB的兩種持久化方式有各自的優(yōu)缺點,所以它們有各自的應(yīng)用場合。

5.1.對比兩種持久化方式

Redis有兩種持久化方式,分別是RDB(Redis DataBase)和AOF(Append-Only File)。

RDB的優(yōu)點:

  1. RDB使用一種緊湊的二進(jìn)制格式來存儲數(shù)據(jù),因此它的速度非???。在恢復(fù)大量數(shù)據(jù)時,它通常比AOF快得多。
  2. RDB對于在磁盤上的數(shù)據(jù)備份和恢復(fù)非常有用,用于災(zāi)難恢復(fù)和數(shù)據(jù)遷移。

RDB的缺點:

  1. RDB快照是定期執(zhí)行的,而不是實時執(zhí)行,所以如果Redis在快照之間崩潰,您將丟失最新的數(shù)據(jù)。
  2. RDB無法保證數(shù)據(jù)的實時性,因為您需要配置多久進(jìn)行一次快照,并在磁盤之間傳輸大量的數(shù)據(jù)。

AOF的優(yōu)點:

  1. AOF以追加方式記錄每個寫操作,因此能夠?qū)崟r記錄每個數(shù)據(jù)更改,更加可靠。
  2. AOF提供了更好的數(shù)據(jù)安全保障,因為它通過記錄每個寫操作來避免數(shù)據(jù)的丟失。

AOF的缺點:

  1. AOF記錄每個寫操作,因此它的速度比RDB慢,尤其在寫操作比較頻繁時更加明顯。
  2. AOF生成的日志文件可能比較大,因此需要定期進(jìn)行壓縮和清理。

綜上所述,RDB在執(zhí)行速度和備份恢復(fù)上優(yōu)于AOF,但無法保證數(shù)據(jù)的實時性;而AOF在數(shù)據(jù)安全方面更有保障,但會對性能產(chǎn)生影響。因此,選擇哪種持久化方式應(yīng)該根據(jù)具體業(yè)務(wù)需求和應(yīng)用場景來確定。Redis有兩種持久化方式,分別是RDB(Redis DataBase)和AOF(Append-Only File)。

5.2.綜合使用兩種持久化方式

因為兩種持久化方式各有優(yōu)缺點,所以可以兩種方式都開啟。文章來源地址http://www.zghlxwxcb.cn/news/detail-495021.html

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

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • redis數(shù)據(jù)安全(三)數(shù)據(jù)持久化 AOF

    redis數(shù)據(jù)安全(三)數(shù)據(jù)持久化 AOF

    接上一篇RDB,本篇看下Redis數(shù)據(jù)持久化的第二種方式AOF。 目錄 一、AOF原理 1、寫入機制: 2、緩沖機制: 3、重寫機制?: 4、運行流程 二、AOF文件配置 1、開啟AOF: 2、自動觸發(fā)AOF重寫? 3、重寫規(guī)則: 三、AOF的備份恢復(fù): 1、正?;謴?fù): 2、異?;謴?fù): 四、重寫流程: 五、

    2024年01月19日
    瀏覽(25)
  • redis數(shù)據(jù)安全(二)數(shù)據(jù)持久化 RDB

    redis數(shù)據(jù)安全(二)數(shù)據(jù)持久化 RDB

    目錄 一、RDB快照持久化 原理 二、RDB快照持久化配置(redis.conf): 三、觸發(fā)RDB備份: 1、自動備份,需配置備份規(guī)則: 2、手動執(zhí)行命令備份(save | bgsave): 3、flushall命令: 四、RDB的備份恢復(fù): 五、RDB優(yōu)缺點: 以下配置以Redis-x64-3.2.100.zip為例,介紹下 RDB快照持久化? 一、

    2024年01月20日
    瀏覽(27)
  • docker安裝redis并持久化數(shù)據(jù)

    docker安裝redis并持久化數(shù)據(jù)

    這里是沒有任何的密碼 密碼是剛才設(shè)置的Maqiang

    2024年02月11日
    瀏覽(27)
  • Redis---數(shù)據(jù)持久化之RDB與AOF

    Redis 數(shù)據(jù)庫文件,全稱 Redis DataBase,數(shù)據(jù)持久化方式之一,數(shù)據(jù)持久化 默認(rèn)方式 ,按照指定時間間隔,將內(nèi)存中的數(shù)據(jù)及快照寫入硬盤 定義RDB文件名 dbfilename \\\"dump.rdb\\\" RDB指dump.rdb文件; redis數(shù)據(jù)每次存盤,如果不指定持久化的方式,數(shù)據(jù)就會默認(rèn)存入dump.rdb文件中 數(shù)據(jù)從內(nèi)存

    2023年04月19日
    瀏覽(21)
  • 非關(guān)系型數(shù)據(jù)庫之Redis 持久化

    非關(guān)系型數(shù)據(jù)庫之Redis 持久化

    目錄 一 Redis 高可用? 1redis高可用技術(shù) 2 持久化的功能: 3 Redis 提供兩種方式進(jìn)行持久化: 二 持久化之RDB 1. 觸發(fā)條件 (1)手動觸發(fā) (2)自動觸發(fā) (3)其他自動觸發(fā)機制 2. 執(zhí)行流程 3. 啟動時加載 三 AOF 持久化之AOF 1. 開啟AOF配置 2. 執(zhí)行流程 AOF的執(zhí)行流程包括: (1)命令

    2024年04月10日
    瀏覽(28)
  • Redis數(shù)據(jù)庫持久化---RDB(Redis DataBase)概念與實操

    一、概念 1redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。 RDB(Redis DataBase):是在不同的時間點,將redis存儲的數(shù)據(jù)生成快照并存儲到磁盤等介質(zhì)上; 特點: 1.周期性 2.不影響數(shù)據(jù)寫入 ?#RDB會啟動子進(jìn)程,備份所有數(shù)據(jù)。當(dāng)前進(jìn)程,繼續(xù)提供數(shù)

    2024年02月10日
    瀏覽(22)
  • Redis九種數(shù)據(jù)類型及其持久化機制:探索數(shù)據(jù)存儲的奇妙世界

    Redis九種數(shù)據(jù)類型及其持久化機制:探索數(shù)據(jù)存儲的奇妙世界

    目錄 一、9種數(shù)據(jù)類型 3.1 Key操作 3.1.1 相關(guān)命令 練習(xí): 3.2 String 3.2.1 結(jié)構(gòu)圖 3.2.2 相關(guān)命令 ?練習(xí): 3.3 List(雙向的鏈表) 3.3.1 結(jié)構(gòu)圖 3.3.2 相關(guān)命令 練習(xí): 3.4 Set(無序集合) 3.4.1 結(jié)構(gòu)圖 3.4.2 相關(guān)命令 練習(xí): 3.5 Zset(有序集合) 3.5.1 結(jié)構(gòu)圖 3.5.2 相關(guān)命令 練習(xí) 3.6 Hash 3.6.1 結(jié)構(gòu)

    2024年02月16日
    瀏覽(90)
  • 微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā)

    微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā)

    系列目錄 微服務(wù) - 概念 · 應(yīng)用 · 架構(gòu) · 通訊 · 授權(quán) · 跨域 · 限流 微服務(wù) - Consul集群化 · 服務(wù)注冊 · 健康檢測 · 服務(wù)發(fā)現(xiàn) · 負(fù)載均衡 微服務(wù) - Redis緩存 · 數(shù)據(jù)結(jié)構(gòu) · 持久化 · 分布式 · 高并發(fā) 微服務(wù) - Nginx網(wǎng)關(guān) · 進(jìn)程機制 · 限流熔斷 · 性能優(yōu)化 · 動態(tài)負(fù)載 · 高可用

    2023年04月18日
    瀏覽(23)
  • Redis - redis.windows.conf配置文件及RDB和AOF數(shù)據(jù)持久化方案

    Redis - redis.windows.conf配置文件及RDB和AOF數(shù)據(jù)持久化方案

    Redis的高性能是由于其將所有數(shù)據(jù)都存儲在了內(nèi)存中,為了使Redis在重啟之后仍能保證數(shù)據(jù)不丟失,需要將數(shù)據(jù)從內(nèi)存中同步到硬盤中,這一過程就是持久化。 Redis支持兩種方式的持久化,一種是RDB方式,一種是AOF方式。可以單獨使用其中一種或?qū)⒍呓Y(jié)合使用。 該機制是指

    2024年01月24日
    瀏覽(30)
  • 【Java 進(jìn)階篇】Redis持久化之RDB:數(shù)據(jù)的安全守護者

    【Java 進(jìn)階篇】Redis持久化之RDB:數(shù)據(jù)的安全守護者

    Redis,作為一款高性能的鍵值存儲系統(tǒng),支持多種持久化方式,其中RDB(Redis DataBase)是其最常用的一種。RDB可以將當(dāng)前時刻的數(shù)據(jù)快照保存到磁盤,以便在Redis重啟時快速恢復(fù)數(shù)據(jù)。本文將深入探討RDB的原理、配置和實際應(yīng)用,幫助初學(xué)者更好地理解和使用Redis的持久化機制

    2024年02月05日
    瀏覽(33)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包