這篇文章將為大家詳細(xì)講解有關(guān)怎么刪掉redis中的過(guò)期key,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)主營(yíng)前進(jìn)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開發(fā),前進(jìn)h5小程序開發(fā)搭建,前進(jìn)網(wǎng)站營(yíng)銷推廣歡迎前進(jìn)等地區(qū)企業(yè)咨詢
最近我們?cè)赗edis集群中發(fā)現(xiàn)了一個(gè)有趣的問(wèn)題。在花費(fèi)大量時(shí)間進(jìn)行調(diào)試和測(cè)試后,通過(guò)更改key過(guò)期,我們可以將某些集群中的Redis內(nèi)存使用量減少25%。
Twitter內(nèi)部運(yùn)行著多個(gè)緩存服務(wù)。其中一個(gè)是由Redis實(shí)現(xiàn)的。我們的Redis集群中存儲(chǔ)了一些Twitter重要的用例數(shù)據(jù),例如展示和參與度數(shù)據(jù)、廣告支出計(jì)數(shù)和直接消息。
問(wèn)題背景
早在2016年初,Twitter的Cache團(tuán)隊(duì)就對(duì)Redis集群的架構(gòu)進(jìn)行了大量更新。Redis發(fā)生了一些變化,其中包括從Redis 2.4版到3.2版的更新。
在此更新后,出現(xiàn)了幾個(gè)問(wèn)題,例如用戶開始看到內(nèi)存使用與他們的預(yù)期或準(zhǔn)備使用的內(nèi)存不一致、延遲增加和key清除問(wèn)題。key的清除是一個(gè)很大的問(wèn)題,這可能導(dǎo)致本應(yīng)持久化的數(shù)據(jù)可能被刪除了,或者請(qǐng)求發(fā)送到數(shù)據(jù)原始存儲(chǔ)。
初步調(diào)查
受影響的團(tuán)隊(duì)和緩存團(tuán)隊(duì)開始進(jìn)行初步的調(diào)查。我們發(fā)現(xiàn)延遲增加與現(xiàn)在正在發(fā)生的key清除有關(guān)。當(dāng)Redis收到寫入請(qǐng)求但沒有內(nèi)存來(lái)保存寫入時(shí),它將停止正在執(zhí)行的操作,清除key然后保存新key。
但是,我們?nèi)匀恍枰页鰧?dǎo)致這些新清除的內(nèi)存使用量增加的原因。
我們懷疑內(nèi)存中充滿了過(guò)期但尚未刪除的key。有人建議使用掃描,掃描的方法會(huì)讀取所有的key,并且讓過(guò)期的key被刪除。
在Redis中,key有兩種過(guò)期方式,主動(dòng)過(guò)期和被動(dòng)過(guò)期。掃描將觸發(fā)key的被動(dòng)過(guò)期,當(dāng)讀取key時(shí), TTL將會(huì)被檢查,如果TTL已過(guò)期,TTL會(huì)被刪除并且不返回任何內(nèi)容。
Redis文檔中描述了版本3.2中的key的主動(dòng)過(guò)期。key的主動(dòng)過(guò)期以一個(gè)名為activeExpireCycle的函數(shù)開始。它以每秒運(yùn)行幾次的頻率,運(yùn)行在一個(gè)稱為cron的內(nèi)部計(jì)時(shí)器上。
activeExpireCycle函數(shù)的作用是遍歷每個(gè)密鑰空間,檢查具有TTL集的隨機(jī)kry,如果滿足過(guò)期kry的百分比閾值,則重復(fù)此過(guò)程直到滿足時(shí)間限制。
這種掃描所有key的方法是有效的,當(dāng)掃描完成時(shí),內(nèi)存使用量也下降了。似乎Redis不再有效地使key過(guò)期了。
但是,當(dāng)時(shí)的解決方案是增加集群的大小和更多的硬件,這樣key就會(huì)分布得更多,就會(huì)有更多的可用內(nèi)存。這是令人失望的,因?yàn)榍懊嫣岬降纳?jí)Redis的項(xiàng)目通過(guò)提高集群的效率降低了運(yùn)行這些集群的規(guī)模和成本。
關(guān)于刪掉redis中的過(guò)期key的方案就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享題目:怎么刪掉redis中的過(guò)期key
文章位置:http://www.chinadenli.net/article18/gshjgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App開發(fā)、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)