新聞中心
這篇文章主要介紹redis刪數(shù)據(jù)的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、東西湖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為東西湖等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
Redis常用的刪除策略有以下三種:
1.被動(dòng)刪除(惰性刪除):當(dāng)讀/寫(xiě)一個(gè)已經(jīng)過(guò)期的Key時(shí),會(huì)觸發(fā)惰性刪除策略,直接刪除掉這個(gè)Key;
2.主動(dòng)刪除(定期刪除):Redis會(huì)定期巡檢,來(lái)清理過(guò)期Key;
3.當(dāng)內(nèi)存達(dá)到maxmemory配置時(shí)候,會(huì)觸發(fā)Key的刪除操作;
主動(dòng)刪除
在 Redis 中,常規(guī)操作由 redis.c/serverCron 實(shí)現(xiàn),它主要執(zhí)行以下操作:
1.更新服務(wù)器的各類統(tǒng)計(jì)信息,比如時(shí)間、內(nèi)存占用、數(shù)據(jù)庫(kù)占用情況等。
2.清理數(shù)據(jù)庫(kù)中的過(guò)期鍵值對(duì)。
3.對(duì)不合理的數(shù)據(jù)庫(kù)進(jìn)行大小調(diào)整。
4.關(guān)閉和清理連接失效的客戶端。
5.嘗試進(jìn)行 AOF 或 RDB 持久化操作。
6.如果服務(wù)器是主節(jié)點(diǎn)的話,對(duì)附屬節(jié)點(diǎn)進(jìn)行定期同步。
如果處于集群模式的話,對(duì)集群進(jìn)行定期同步和連接測(cè)試。
Redis 將 serverCron 作為時(shí)間事件來(lái)運(yùn)行,從而確保它每隔一段時(shí)間就會(huì)自動(dòng)運(yùn)行一次, 又因?yàn)?serverCron 需要在 Redis 服務(wù)器運(yùn)行期間一直定期運(yùn)行, 所以它是一個(gè)循環(huán)時(shí)間事件:serverCron 會(huì)一直定期執(zhí)行,直到服務(wù)器關(guān)閉為止。
總結(jié)
如果Redis中每天過(guò)期大量Key(比如幾千萬(wàn)),那么必須得考慮過(guò)期Key的清理:
增加Redis主動(dòng)清理的頻率(通過(guò)調(diào)大hz參數(shù))
手動(dòng)清理過(guò)期Key,最簡(jiǎn)單的方法是進(jìn)行scan操作,scan操作會(huì)觸發(fā)第一種被動(dòng)刪除,scan操作時(shí)候別忘了加count;
dbsize命令返回的Key數(shù)量,包含了過(guò)期Key
randomkey命令返回的Key,不包含過(guò)期Key
scan命令返回的Key,包含過(guò)期Key
info命令返回的# Keyspace
db6:keys=1034937352,expires=994731489,avg_ttl=507838502
keys對(duì)應(yīng)的Key數(shù)量等同于dbsize
expires指的是設(shè)置了過(guò)期時(shí)間的Key數(shù)量
avg_ttl指設(shè)置了過(guò)期時(shí)間的Key的平均過(guò)期時(shí)間(單位:毫秒)
以上是redis刪數(shù)據(jù)的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享名稱:redis刪數(shù)據(jù)的方法
分享URL:http://www.ef60e0e.cn/article/gopooj.html