日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis总结(四)Redis 的持久化

發布時間:2024/1/17 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis总结(四)Redis 的持久化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  前面已經總結了Redis 的安裝和使用今天講下Redis 的持久化。

  

  redis跟memcached類似,都是內存數據庫,不過redis支持數據持久化,也就是說redis可以將內存中的數據同步到磁盤來持久化,以確保redis 的數據安全。

?

?redis持久化的兩種方式

  redis提供了兩種持久化的方式,分別是RDB(Redis DataBase)和AOF(Append Only File)。

  RDB,簡而言之,就是將存儲的數據快照的方式存儲到磁盤上,

  AOF,則是將redis執行過的所有寫指令記錄下來,通過write函數追加到AOF文件的末尾。在下次redis重新啟動時,只要把這些寫指令從前到后再重復執行一遍,就可以實現數據恢復了。

?

  其實RDB和AOF兩種方式也可以同時使用,在這種情況下,如果redis重啟的話,則會優先采用AOF方式來進行數據恢復,這是因為AOF方式的數據恢復完整度更高。

  如果你沒有數據持久化的需求,也完全可以關閉RDB和AOF方式,這樣的話,redis將變成一個純內存數據庫,就像memcache一樣。

?

?RDB

  RDB(Redis DataBase),是將redis某一時刻的數據持久化到磁盤中,是一種快照式的持久化方法。默認的文件名為dump.rdb。

  redis在進行數據持久化的過程中,會先將數據寫入到一個臨時文件中,待持久化過程都結束了,才會用這個臨時文件替換上次持久化好的文件,以確保數據完整可用。

  save 300 10 #300秒內容如超過10個key被修改,則發起快照保存

?  

  不過,由于快照方式是在一定間隔時間做一次的,如果對數據的完整性非常敏感,那么RDB方式就不太適合你,因為即使你每2分鐘都持久化一次,當redis故障時,仍然會有近2分鐘的數據丟失。所以,redis還提供了另一種持久化方式,那就是AOF。

 

?

?AOF

  AOF(Append Only File),即只允許追加不允許改寫的文件。

  Redis會將收到的每一個寫操作(如SET等)通過write函數追加到AOF文件的末尾。默認的AOF持久化策略是每秒鐘fsync一次(把緩存中的寫指令記錄到磁盤中)。

?

  當Redis重啟時會通過重新執行文件中保存的寫命令來在內存中重建整個數據庫的內容。

  appendonly yes #啟用aof持久化方式# appendfsync always   #每次收到寫命令就立即強制寫入磁盤,最慢的,但是保證完全的持久化,不推薦使用appendfsync everysec #每秒鐘強制寫入磁盤一次,在性能和持久化方面做了很好的折中,推薦# appendfsync no     #完全依賴os,性能最好,持久化沒保證

  

  但AOF方式是將所有的命令記錄下來,所以AOF文件要比RDB文件的體積大。而且,恢復速度也要慢于RDB方式。

?

  redis提供了bgrewriteaof命令,會重新生成一個全新的AOF文件,其中便包括了可以恢復現有數據的最少的命令集。

?

  需要注意到是重寫aof文件的操作,并沒有讀取舊的aof文件,而是將整個內存中的數據庫內容用命令的方式重寫了一個新的aof文件,這點和快照有點類似。

?

?如何選擇RDB和AOF

  對于我們應該選擇RDB還是AOF,取決于具體的應用場景,官方的建議是兩個同時使用。這樣可以提供更可靠的持久化方案。

?

總結

以上是生活随笔為你收集整理的Redis总结(四)Redis 的持久化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。