redis 持久化配置 無縫從rdb切換到aof 安全保留數據

redis 持久化配置 無縫從rdb切換到aof 安全保留數據redis

redis默認持久化配置rdb,可是若是貿然切換配置到aof方式,重啓會致使數據丟失

問題vim

redis默認持久化配置rdb,可是若是貿然切換配置到aof方式,重啓會致使數據丟失緩存

若是數據不重要,都是緩存數據則沒什麼,若是是重要臨時數據,不能丟失的狀況,則須要特殊處理,保證數據不丟失安全

根本緣由app

  • rdb方式默認將數據持久化存儲到dump.rdb文件下
  • aof方式默認將數據寫操做記錄到appendonly.aof文件下
  • 若是同時開啓2種方式,重啓會默認加載aof方式
  • redis默認只開啓rdb
  • 綜上,若是你是默認rdb方式,而後貿然切換到aof,重啓後會讀取aof文件,可是這個時候aof文件是空的,則會致使redis被清空

解決方法code

原理:在redis控制檯動態配置打開 aof方式,在 shutdown安全退出後,自動記錄了當前全部記錄到 aof文件,再修改redis文件配置打開 aof方式,啓動redis時會自動加載以前安全退出保存的 aof數據
  1. 進入redis內存

    redis-cli
  2. redis中動態修改配置並退出同步

    127.0.0.1:6379> save  # 收到觸發rdb存儲數據
    OK
    127.0.0.1:6379> CONFIG SET appendonly yes  # 動態配置
    OK
    127.0.0.1:6379> save
    OK
    127.0.0.1:6379> shutdown save # 安全退出並存儲數據
    not connected>
  3. 修改redis配置,打開aof
    vim redis.confit

    appendonly no #aof方式默認關閉
  4. 啓動redis
    service redis start

附錄原理

rdb配置

save 900 1              #在900秒(15分鐘)以後,若是至少有1個key發生變化,則dump內存快照。
save 300 10            #在300秒(5分鐘)以後,若是至少有10個key發生變化,則dump內存快照。
save 60 10000        #在60秒(1分鐘)以後,若是至少有10000個key發生變化,則dump內存快照。

aof配置

appendonly no #aof方式默認關閉
appendfilename "appendonly.aof" #文件名
appendfsync everysec #同步模式(可選no always everysec)
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
相關文章
相關標籤/搜索