1. 程式人生 > 其它 >學習筆記——多執行緒及執行緒加鎖

學習筆記——多執行緒及執行緒加鎖

RDB 持久化方式能夠在指定的時間間隔能對你的資料進行快照儲存。

AOF 持久化方式記錄每次對伺服器寫的操作,當伺服器重啟的時候會重新執行這些命令來恢復原始的資料,AOF 命 令以 redis 協議追加儲存每次寫的操作到檔案末尾.Redis 還能對 AOF 檔案進行後臺重寫,使得 AOF 檔案的體積不至於過大。

如果只希望資料在伺服器執行的時候存在,也可以不使用任何持久化方式。

如果同時開啟兩種持久化方式,在這種情況下,當 redis 重啟的時候會優先載入 AOF 檔案來恢復原始的資料, 因為在通常情況下 AOF 檔案儲存的資料集要比 RDB 檔案儲存的資料集要完整。

1、RDB持久化:每過一段時間,將記憶體中的資料集寫入磁碟。

Redis會單獨建立一個子執行緒來進行持久化,會先將資料寫入一個臨時檔案,當所有資料持久化結束後,再用這個臨時檔案替換之前持久化完成的檔案。整個過程主程序沒有進行I/O操作,所以效率極高。

儲存策略:900 1 900 秒內如果至少有 1 個 key 的值變化,則儲存

300 10 300 秒內如果至少有 10 個 key 的值變化,則儲存

60 10000 60 秒內如果至 10000 個 key 的值變化,則儲存

2、AOF持久化:通過日誌方式記錄每個更新操作

Redis重新啟動時會讀取這個檔案,重新執行新建,修改資料的命令來恢復資料。

儲存策略:appendfsync always  每產生一條新的修改命令都要執行儲存操作,效率低,安全。

     appendfsync everysec 每一秒儲存一次

     appendfsync no    不執行儲存操作,將資料交給系統處理,更快,但不安全。

缺點:1、比起RDB佔用更多的磁碟空間

   2、每次讀寫都同步,有一定效能壓力

   3、恢復速度慢

   4、存在一定bug,可能造成資料無法恢復