redis數(shù)據(jù)的默認過期時間 redis incrby計數(shù)器失效時間?
redis incrby計數(shù)器失效時間?最近,redis正在使用,它使用incrby操作。但是,API沒有提供參數(shù)來設(shè)置密鑰的過期時間。我想出了一個相對較低的方法。長限=RedistringServi
redis incrby計數(shù)器失效時間?
最近,redis正在使用,它使用incrby操作。但是,API沒有提供參數(shù)來設(shè)置密鑰的過期時間。
我想出了一個相對較低的方法。
長限=RedistringService.incrBy公司(limitcachekey,1)
//對于獲取數(shù)字1的線程,設(shè)置密鑰的有效期
如果(limit==1){RedistringService.expired已過期(limitcachekey,2)
}]當incrby的返回值為1時,請獲得1的線程幫助設(shè)置密鑰的過期時間。
由于incrby是原子的,必須只有一個線程才能獲得1,因此不可能同時調(diào)用過期的操作。
經(jīng)過驗證,這種方法是可行的,但感覺很低
不會過期。但這有點絕對。一般來說,當您在配置中啟用超過最大內(nèi)存限制的磁盤寫入時,可能會將未設(shè)置過期時間的密鑰寫入磁盤。如果未設(shè)置。Redis將使用LRU機制刪除內(nèi)存中的舊數(shù)據(jù)并寫入新數(shù)據(jù)。您可以使用排序集將要過期的成員和鍵的信息放入排序集的成員中,并將過期時間放入分數(shù)中。運行任務(wù)并使用zrangebycore遍歷它。使用排序集的優(yōu)點是它只需要遍歷過期成員,而不需要掃描整個過期成員集。