redis的過期鍵與持久化

2021-10-05 09:49:32 字數 694 閱讀 8575

思考過期鍵與持久化!

在生成 rdb 檔案的過程中,如果乙個鍵已經過期,那麼其不會被儲存到 rdb 檔案中。

在載入 rdb 的時候,要分兩種情況:

如果 redis 以主伺服器的模式執行,那麼會對 rdb 中的鍵進行時間檢查,過期的鍵不會被恢復到 redis 中。

如果 redis 以從伺服器的模式執行,那麼 rdb 中所有的鍵都會被載入,忽略時間檢查。在從伺服器與主伺服器進行資料同步的時候,從伺服器的資料會先被清空,所以載入過期鍵不會有問題。

對於 aof 來說,如果乙個鍵過期了,那麼不會立刻對 aof 檔案造成影響。因為 redis 使用的是惰性刪除和定期刪除,只有這個鍵被刪除了,才會往 aof 檔案中追加一條 del 命令。在重寫 aof 的過程中,程式會檢查資料庫中的鍵,特別是開啟了混合持久化,已經過期的鍵不會被儲存到 aof 檔案中(其中在混合持久化檔案中剔除了),你再重寫後(bgrewriteaof),vim

對於主從複製場景,主伺服器和從伺服器對於過期鍵的處理也不相同:

對於主伺服器,乙個過期的鍵被刪除了後,會向從伺服器傳送 del 命令,通知從伺服器刪除對應的鍵

從伺服器接收到讀取乙個鍵的命令時,即使這個鍵已經過期,也不會刪除(不執行惰性刪除),而是照常處理這個命令。

從伺服器接收到主伺服器的 del 命令後,才會刪除對應的過期鍵(說的就是從伺服器使用的是主伺服器的同步策略)。

redis持久化 AOF持久化

1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...

Redis的持久化

我們都知道,redis的資料都是儲存在記憶體裡面的,導致了redis有如下特點 1.由於記憶體的容量較小,並且速度很快,所以redis相對於mysql orcle等資料庫相比,儲存的容量較小,但是io速度特別快。2.由於記憶體的臨時儲存性,在機器斷電之後記憶體裡的內容將會丟失,若redis沒有持久化...

redis的持久化

redis有兩種持久化策略 rdb 是redis的預設持久化級制。相當於照快照,儲存的是一種狀態。優點 快照速度極快 還原資料速度極快 適用於災難備份 缺點 小記憶體機器不適合,適用於記憶體充裕的計算機 rdb機制符合要求就會找快照 隨時啟動,會突然的占用一部分系統資源 伺服器正常關閉 key滿足一...