一、好句
記憶的梗上,誰不油,兩三朵娉婷,披著情緒的花。
二、背景
最近別人問我redis設(shè)置緩存有效時間然后失效的原理是什么,我想了想就回答了使用了隊列,然后按照時間順序來執(zhí)行失效,那么問題來了,如果有1個億的數(shù)據(jù)都是在1s內(nèi)失效,那么來不及處理怎么辦?
三、redis設(shè)置失效
3.1 過期的策略有三種:
立即過期
訪問過期
定時過期
redis中的過期策略是其中兩種即是訪問過期,定時過期,還有就是暴力刪除
3.2詳解
訪問過期:即是在訪問的時候判斷是否失效,如果失效則進(jìn)行刪除操作。
定時過期:即是如果定時的key量很小,只需要消耗一點點CPU就可以進(jìn)行刪除;但是如果定時的key的量太大,那么定時刪除則會浪費CPU,所以redis內(nèi)部會根據(jù)key數(shù)量大小,根據(jù)算法來刪除一定比列的key。
暴力刪除:這是指當(dāng)內(nèi)存超出設(shè)定的值的時候進(jìn)行暴力刪除。
思考:
其實自己當(dāng)時想這個的時候首先想到隊列,然后數(shù)據(jù)量大了,處理不及時又怎么辦了,回來查了下資料才知道redis的操作方式。所以有時候自己就要發(fā)散思維,不能只局限于自己的思考,可能在思考的時候要考慮到其可能性。
參考:
<a >[redis如何刪除過期數(shù)據(jù)]</a>