搜尋

首頁  >  問答  >  主體

redis持久化問題

如果用redis儲存的資料都是有時間的,那麼時間過期以後,

  1. redis是否會自動清除過期的key

  2. 如果不自動清除,那麼豈不是持久化出來的文件就會越來越大。

  3. 如果是手動清除,怎麼清除。

  4. 我發現我重啟一下redis可以減少儲存的文件,是不是說重啟可以清除過期的key。

用的是redis的RDB,如果使用AOF的話,是不是解決方案也是一樣的。

ringa_leeringa_lee2770 天前862

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-25 09:04:36

    引進我一篇很久以前的文章討論一下redis的過期鍵刪除機制

    然後回到你的問題:

    1. redis會自動清除過期的key,透過惰性刪除和定期刪除。

    2. 這個是必然的,所有redis都有定期刪除機制,幫你每隔一段時間對redis資料庫進行一次檢查,刪除裡面的過期鍵

    3. 手動清除的話,透過del 等方法是刪除。

    4. 因為redis的資料都是存在記憶體中的(雖然有持久化但持久化的目的只是備份),所以你重啟以後,記憶體中的資料就沒有了,自然檔案就小了。

    RDB和AOF與刪除機制壓根沒關係,他們只是持久化的方式而已。

    回覆
    0
  • PHPz

    PHPz2017-04-25 09:04:36

    自己在建立鍵值的時候設定過期時間,還可以用指令刪除指定鍵,都可以,重新啟動也可以刪除redis儲存記憶體的資料

    回覆
    0
  • 取消回覆