首頁  >  文章  >  資料庫  >  redis怎麼刪數據

redis怎麼刪數據

silencement
silencement原創
2019-06-06 15:00:435693瀏覽

redis怎麼刪數據

Redis常用的刪除策略有以下三種:

1.被動刪除(惰性刪除):當讀/寫一個已經過期的Key時,會觸發惰性刪除策略,直接刪除掉這個Key;

2.主動刪除(定期刪除):Redis會定期巡檢,來清理過期Key;

3.當記憶體達到maxmemory配置時候,會觸發Key的刪除操作;

主動刪除

在Redis 中,常規作業由 redis.c/serverCron 實現,它主要執行以下操作:

1.更新伺服器的各類統計信息,例如時間、記憶體佔用、資料庫佔用情況等。

2.清理資料庫中的過期鍵值對。

3.對不合理的資料庫進行大小調整。

4.關閉和清理連線失效的客戶端。

5.嘗試進行 AOF 或 RDB 持久化操作。

6.如果伺服器是主節點的話,對附屬節點進行定期同步。

如果處於叢集模式的話,對叢集進行定期同步和連接測試。

Redis 將serverCron 作為時間事件來運行,從而確保它每隔一段時間就會自動運行一次, 又因為serverCron 需要在Redis 伺服器運行期間一直定期運行, 所以它是一個循環時間事件:serverCron會一直定期執行,直到伺服器關閉為止。

總結

如果Redis中每天過期大量Key(例如幾千萬),那麼就必須考慮過期Key的清理:

增加Redis主動清理的頻率(透過調大hz參數)

手動清理過期Key,最簡單的方法是進行scan操作,scan操作會觸發第一種被動刪除,scan操作時候別忘了加count;

dbsize指令回傳的Key數量,包含了過期Key

randomkey指令回傳的Key,不包含過期Key

scan指令回傳的Key,包含過期Key

info指令傳回的# Keyspace

db6:keys=1034937352,expires=994731489,avg_ttl=507838502

keys對應的Key等同於dbsize

#於dbsize

expires指的是設定了過期時間的Key數量

avg_ttl指設定了過期時間的Key的平均過期時間(單位:毫秒)###

以上是redis怎麼刪數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多