這篇文章主要介紹redis刪數(shù)據(jù)的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Redis常用的刪除策略有以下三種:
1.被動刪除(惰性刪除):當讀/寫一個已經(jīng)過期的Key時,會觸發(fā)惰性刪除策略,直接刪除掉這個Key;
2.主動刪除(定期刪除):Redis會定期巡檢,來清理過期Key;
3.當內(nèi)存達到maxmemory配置時候,會觸發(fā)Key的刪除操作;
主動刪除
在 Redis 中,常規(guī)操作由 redis.c/serverCron 實現(xiàn),它主要執(zhí)行以下操作:
1.更新服務器的各類統(tǒng)計信息,比如時間、內(nèi)存占用、數(shù)據(jù)庫占用情況等。
2.清理數(shù)據(jù)庫中的過期鍵值對。
3.對不合理的數(shù)據(jù)庫進行大小調(diào)整。
4.關閉和清理連接失效的客戶端。
5.嘗試進行 AOF 或 RDB 持久化操作。
6.如果服務器是主節(jié)點的話,對附屬節(jié)點進行定期同步。
如果處于集群模式的話,對集群進行定期同步和連接測試。
Redis 將 serverCron 作為時間事件來運行,從而確保它每隔一段時間就會自動運行一次, 又因為 serverCron 需要在 Redis 服務器運行期間一直定期運行, 所以它是一個循環(huán)時間事件:serverCron 會一直定期執(zhí)行,直到服務器關閉為止。
總結
如果Redis中每天過期大量Key(比如幾千萬),那么必須得考慮過期Key的清理:
增加Redis主動清理的頻率(通過調(diào)大hz參數(shù))
手動清理過期Key,最簡單的方法是進行scan操作,scan操作會觸發(fā)第一種被動刪除,scan操作時候別忘了加count;
dbsize命令返回的Key數(shù)量,包含了過期Key
randomkey命令返回的Key,不包含過期Key
scan命令返回的Key,包含過期Key
info命令返回的# Keyspace
db6:keys=1034937352,expires=994731489,avg_ttl=507838502
keys對應的Key數(shù)量等同于dbsize
expires指的是設置了過期時間的Key數(shù)量
avg_ttl指設置了過期時間的Key的平均過期時間(單位:毫秒)
以上是redis刪數(shù)據(jù)的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!
文章名稱:redis刪數(shù)據(jù)的方法-創(chuàng)新互聯(lián)
鏈接地址:http://chinadenli.net/article20/ddiojo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、定制網(wǎng)站、云服務器、服務器托管、Google、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容