Redis持久化的兩種模式--RDB和AOF

最近呢,我使用到redis的緩存這方面的知識,因此去加深了一下學習,故有一些積累的東西,在這裏給你們分享一下;順便也看成筆記通常的存在,以避免之後用到的時候,又去再次查找,難道本身記錄的知識,它不香嗎?java


1. Redis持久化策略

1.1什麼是持久化

1.1.1持久化介紹

     運行環境: redis運行環境在計算機的內存中.若是redis服務器意外宕機,或者機房意外斷電等.那麼內存中的數據將會所有清空.勢必形成業務數據的丟失. 穩定性太差。redis

     並且因爲Redis的數據都存放在內存中,若是沒有配置持久化,redis重啓後數據就全丟失了,因而須要開啓redis的持久化功能,將數據保存到磁盤上,當redis重啓後,能夠從磁盤中恢復數據。redis提供兩種方式進行持久化,一種是RDB持久化(原理是將Reids在內存中的數據庫記錄定時dump到磁盤上的RDB持久化),另一種是AOF(append only file)持久化(原理是將Reids的操做日誌以追加的方式寫入文件)。數據庫

1.1.2 持久化策略介紹

     持久化:能夠將內存數據按照指定的規則保存到磁盤中.當redis重啓時,根據配置文件中指定的持久化文件.實現數據的恢復.緩存

保存方式:服務器

  • 1.多久保存一次?app

               1.指定週期保存 2.實時保存異步

  • 2.保存的是什麼?性能

          1.保存key-value結構 2.保存用戶的操做記錄學習

  • 3.帶來的額外的開銷? 是否容許?

          1.可能會丟失數據. 2.持久化文件太大.不易維護.日誌

2. RDB模式

2.1 RDB模式介紹

  • 1.RDB模式是redis中默認的持久化的策略

  • 2.RDB模式記錄的是Redis的內存快照 記錄速度更快

  • 3.RDB模式是按期持久化.可能會致使少許的數據丟失.

  • 4.若是用戶能夠容許少許的數據丟失,則首選RDB模式.由於RDB模式工做的效率最高.

2.2 RDB模式命令

  • 1.save指令 將內存數據立刻持久化到硬盤中. 該操做是阻塞的. 持久化操做優先.

  • 2.bgsave指令 後臺執行持久化操做. 不能保證當即立刻持久化. 當服務器空閒時,會進行持久化操做.(內存不忙) 不會陷入阻塞.

  • 3.RDB模式能夠實現自動的持久化.

2.3 RDB模式的持久化策略

在redis的配置文件redis.conf中搜索save--:/save,咱們將看見一下信息

save 900 1      900秒內執行1次set操做.則持久化一次.

save 300 10     300秒內執行10次set操做.則持久化一次.

save 60 10000   60秒內執行10000set操做.則持久化一次.

#save 1 1        1秒內執行1set操做.則持久化一次   性能過低.

若是有特殊的需求,能夠修改持久化策略.可是須要注意性能問題。

2.4 RDB模式配置

前面一列是行數,我相信你們都懂啊!

253 dbfilename dump.rdb    能夠修改持久化文件的名稱

 263 dir ./                 持久化文件的位置  ./當前文件目錄

3. AOF模式

3.1 AOF模式介紹

  • 1.AOF模式默認條件下是關閉的,須要手動開啓.

  • 2.AOF模式能夠實現數據的實時持久化.

  • 3.AOF模式,記錄的是用戶的操做的過程.以追加的形式添加到配置文件以後.

  • 4.AOF模式的持久化是異步操做.不會影響用戶的使用.用戶使用不會陷入阻塞.

  • 5.因爲AOF模式記錄的是用戶的操做過程,因此持久化文件較大.恢復數據時間較長.

3.2AOF模式配置

開啓AOF模式

699 appendonly yes

703 appendfilename "appendonly.aof"     持久化文件名稱

3.3AOF和RDB模式同時配置問題

若是RDB模式和AOF模式同時存在,以AOF模式爲主. 若是不想開啓AOF模式須要將配置關閉.

699 appendonly no

3.4 AOF模式持久化策略

appendfsync always   只要用戶執行更新操做,就會持久化到文件中

appendfsync everysec 默認策略  表示每秒同步一次 

appendfsync no        不主動持久化.

4. AOF和RDB總結

  • 1.RDB模式持久化是同步的方式,AOF模式異步操做.

  • 2.RDB模式記錄的是內存數據的快照(只保留最新數據),

          AOF模式記錄的是用戶的操做過程(持久化文件較大).

  • 3.RDB模式可能會丟失少許數據.AOF模式能夠實現實時持久化操做.保證數據"不丟失"

  • 4.RDB模式性能更高.AOF模式運行更爲穩定.可是恢復數據的時間較長,須要按期清理維護持久化文件.

相關文章
相關標籤/搜索