redis 持久化數據保存RDB&AOF


 redis 數據的查詢都是基於內存hash處理,但是為了防止斷電榻機等問題造成數據的丟失,redis 采用持久化硬盤方式以應對數據丟失故障。

先看下redis 目錄操作命令:

redis/bin 目錄下有 

        1. redis-benchmark  為redis 性能基准測試

        2. redis-check-aof   為aof 文件恢復出現異常的修復

        3. redis-check-dump 為rdb 文件恢復出現異常的修復

        4. redis-cli       為redis客戶端操作

        5. redis-server 為redis 服務端啟動程序   

1. redis 持久化有兩種方案可供選擇RDB (redis data base ) 和 aof (append only file )

    rdb 詳解:

        1)RDB 是 Redis 默認的持久化方案。在指定的時間間隔內,執行指定次數的寫操作,則會將內存中的數據寫入到磁盤中。即在指定目錄下生成一個dump.rdb文件。Redis 重啟會通過加載dump.rdb文件恢復數據。

        2)redis.conf 配置茹下

             

         如果需要自定義快照rdb 的持久化方式,可以取消注釋 save "",加入新的快照策略

       3)默認redis 使用快照的方式持久化內存數據至硬盤;

             save 900 1   900秒內有一個以上的key 寫操作會另起一個線程進行快照的備份

       4) redis.conf  dir ./  設置數據存放目錄

       5) rdbcompression yes 默認使用rdb 的壓縮方式壓縮文件。

     rdb 是redis 快速塊照內存信息至硬盤持久化;但持久的方式

  aof 詳解:

       1) aof 不是redis  默認開起的持久化方式。aof 的出現是彌補rdb 文件的不實時一致性。采用日志的形式來記錄每個寫操作,並追加到文件中

       2)aof 開啟方式   appendonly yes

   3)  數據庫文件名  appendfilename "appendonly.aof"

       4)文件追加方式  # appendfsync always  同步持久化,每次發生數據變化會立刻寫入到磁盤中

                                  appendfsync everysec (默認方式)每秒異步寫入磁盤 

                               #  appendfsync no  不同步

       5)aof 數據恢復,默認情況下,數據都會存在bin目錄下,重新啟動redis 即可以恢復之前的狀態,load 硬盤數據至內存中

   6)aof 文件壓縮配置 (redis 每次的操作都會append 至aof 文件末尾,導致文件異常龐大,此配置壓縮文件,替換舊文件)

auto-aof-rewrite-percentage 100  
auto-aof-rewrite-min-size 64mb

  rdb 文件和 aof 文件可在生產中同時開啟,redis 數據恢復首先加載aof 文件,如果aof 文件異常,可以使用rdb 恢復。

總結

  1. Redis 默認開啟RDB持久化方式,在指定的時間間隔內,執行指定次數的寫操作,則將內存中的數據寫入到磁盤中。
  2. RDB  持久化適合大規模的數據恢復但它的數據一致性和完整性較差。
  3. Redis 需要手動開啟AOF持久化方式,默認是每秒將寫操作日志追加到AOF文件中。
  4. AOF 的數據完整性比RDB高,但記錄內容多了,會影響數據恢復的效率。
  5. Redis 針對 AOF文件大的問題,提供重寫的瘦身機制。
  6. 若只打算用Redis 做緩存,可以關閉持久化。
  7. 若打算使用Redis 的持久化。建議RDB和AOF都開啟。其實RDB更適合做數據的備份,留一后手。AOF出問題了,還有RDB

 


免責聲明!

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



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