Redis的持久化存儲


概念

redis持久化:

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

RDB持久化存儲

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

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

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

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

 redis持久化之RDB實踐

1.第一步,准備一個redis配置文件,  rdbredis.conf  

2.vim打開這個文件,並寫入下列內容

daemonize yes           #后台運行redis 
port 6379           #redis端口 
logfile /data/6379/redis.log        #redis日志文件位置
dir /data/6379/            #指定redis數據文件夾放在哪 
dbfilename  s17dump.rdb           #指定rdb的數據文件    
bind 0.0.0.0
requirepass redhat              #指定redis的密碼    
save 900 1                  #代表  900秒內 有1個修改key的操作,就進行持久化       
save 300 10                     # 300秒內 有10個修改類的操作,就持久化
save 60  10000      #  60秒內 有10000個修改類的操作,就持久化 

3.創建 /data/6379/文件夾

mkdir -p /data/6379/  

4.通過配置文件啟動 redis服務端,支持rdb持久化的 服務端

redis-server  rdbredis.conf   

5.並且可以通過 save指令 手動觸發持久化數據

127.0.0.1:6379> save
OK

AOF持久化

不需要你手動的save觸發持久化

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

OF持久化之RDB實踐

1.修改redis的配置文件,如下  ,再次創建一個 新的aof配置文件

touch  aofredis.conf 

2.編輯配置文件,寫入如下內容  vim  aofredis.conf

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
appendonly yes    #開啟aof持久化的參數,就是這個
appendfsync everysec        #每秒進行一次aof持久化 

3.支持aof方式的持久化

redis-server  aofredis.conf  

4.驗證 aof持久化,
寫入數據后,殺死進程,
再次啟動redis,檢查數據

 

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

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

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

  


免責聲明!

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



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