redis持久化RDB與AOF


redis持久化

Redis是一種內存型數據庫,一旦服務器進程退出,數據庫的數據就會丟失,為了解決這個問題,Redis提供了兩種持久化的方案,將內存中的數據保存到磁盤中,避免數據的丟失。

RDB持久化

redis提供了RDB持久化的功能,這個功能可以將redis在內存中的的狀態保存到硬盤中,它可以手動執行

也可以再redis.conf中配置,定期執行

RDB持久化產生的RDB文件是一個經過壓縮二進制文件,這個文件被保存在硬盤中,redis可以通過這個文件還原數據庫當時的狀態。

RDB(持久化)
內存數據保存到磁盤
在指定的時間間隔內生成數據集的時間點快照(point-in-time snapshot)
優點:速度快,適合做備份,主從復制就是基於RDB持久化功能實現
rdb通過再redis中使用save命令觸發 rdb


rdb配置參數:

dir /data/6379/
dbfilename  dbmp.rdb

每過900秒 有1個操作就進行持久化

save 900秒  1個修改類的操作
save 300秒  10個操作
save 60秒  10000個操作

save  900 1
save 300 10
save 60  10000

 redis持久化之RDB實踐

1.啟動redis服務端,准備配置文件

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379              #定義持久化文件存儲位置
dbfilename  dbmp.rdb        #rdb持久化文件
bind 10.0.0.10  127.0.0.1    #redis綁定地址
requirepass redhat            #redis登錄密碼
save 900 1                    #rdb機制 每900秒 有1個修改記錄
save 300 10                    #每300秒        10個修改記錄
save 60  10000                #每60秒內        10000修改記錄

2.啟動redis服務端

3.登錄redis設置一個key

redis-cli -a redhat

4.此時檢查目錄,/data/6379底下沒有dbmp.rdb文件

5.通過save觸發持久化,將數據寫入RDB文件

127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> save
OK

redis持久化之AOF

AOF(append-only log file)
記錄服務器執行的所有變更操作命令(例如set del等),並在服務器啟動時,通過重新執行這些命令來還原數據集
AOF 文件中的命令全部以redis協議的格式保存,新命令追加到文件末尾。
優點:最大程序保證數據不丟
缺點:日志記錄非常大

redis-client   寫入數據  >  redis-server   同步命令   >  AOF文件

配置參數

AOF持久化配置,兩條參數

appendonly yes
appendfsync  always    總是修改類的操作
             everysec   每秒做一次持久化
             no     依賴於系統自帶的緩存大小機制

1.准備aof配置文件 redis.conf

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename  dbmp.rdb
requirepass redhat
save 900 1
save 300 10
save 60  10000
appendonly yes
appendfsync everysec

2.啟動redis服務

redis-server /etc/redis.conf

3.檢查redis數據目錄/data/6379/是否產生了aof文件

[root@web02 6379]# ls
appendonly.aof  dbmp.rdb  redis.log

4.登錄redis-cli,寫入數據,實時檢查aof文件信息

[root@web02 6379]# tail -f appendonly.aof

5.設置新key,檢查aof信息,然后關閉redis,檢查數據是否持久化

redis-cli -a redhat shutdown

redis-server /etc/redis.conf

redis-cli -a redhat

 

redis 持久化方式有哪些?有什么區別?

rdb:基於快照的持久化,速度更快,一般用作備份,主從復制也是依賴於rdb持久化功能

aof:以追加的方式記錄redis操作日志的文件。可以最大程度的保證redis數據安全,類似於mysql的binlog

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM