redis可以通過設定乙個過期時間expire來處理快取,其中處理方式有兩種:
(主動)定期刪除,redis會抽查隨機的key,預設1秒十次,一旦抽查的key過期了,就會給刪除,配置的屬性在redis.conf中,hz等於10,表示1秒抽查10次
hz 10
(被動)惰性刪除,key到期後不去主動檢測,而是請求訪問到這個key之後,會檢查下是否過期,這樣就不會太消耗cpu資源,缺點是一直占用著記憶體
因為計算機的記憶體是有限的,在部署redis的同時,也可能部署其他的中介軟體如rabbitmq、kafka等等,為了給其他中介軟體預留記憶體空間,redis服務啟動可以設定乙個最大記憶體maxmemory,到達閾值後,redis會清理在記憶體裡永久存在的沒有過期時間的key,處理機制如下:
maxmemory :當記憶體已使用率到達,則開始清理快取
快取問題 五 Redis 快取過期刪除機制
redis 無論有沒有設定expire,都會遵循redis的配置好的刪除機制,規則如下 預設的規則是volatile lru設定了expire的key,將會在過期時間到後刪除 沒有設定expire的快取key,不會被刪除 當到達最大設定記憶體maxmemory時redis先刪除設定了過期時間且過期的...
redis過期機制
在實際開發過程中經常會遇到一些有時效性資料,比如限時優惠活動,快取或者驗證碼之類的。過了一段時間就需要刪除這些資料。在關係型資料庫中一般都要增加乙個字段記錄資料的到期時間,然後周期性地檢查過期資料然後刪除。redis本身就對鍵過期提供了很好的支援。在redis中可以使用expire命令設定乙個鍵的存...
Redis過期機制
目錄ttl key 獲取key的過期剩餘時間,不存在返回 2 無過期時間返回 1 pttl key 同ttl,毫秒 expire key ttl 將鍵的生存時間設為 ttl 秒 pexpire key ttl 將鍵的生存時間設為 ttl 毫秒 expireat key timestamp 將鍵的過期...