Redis Key的超時設(shè)置處理

2018-08-03 10:58 更新
expire key seconds

單位是秒。返回1成功,0表示key已經(jīng)設(shè)置過過期時間或者不存在。 如果想消除超時則使用persist key。如果希望采用絕對超時,則使用expireat命令。

ttl key 

返回設(shè)置過過期時間的key的剩余過期秒數(shù) -1表示沒有設(shè)置過過期時間,對于不存在的key,返回-2。

pexpire key 毫秒數(shù)

設(shè)置生命周期。

pttl  key

以毫秒返回生命周期。

注意:當(dāng)client主動訪問key會先對key進(jìn)行超時判斷,過時的key會立刻刪除。如果clien永遠(yuǎn)都不再get那條key呢? 它會在Master的后臺,每秒10次的執(zhí)行如下操作: 隨機選取100個key校驗是否過期,如果有25個以上的key過期了,立刻額外隨機選取下100個key(不計算在10次之內(nèi))。可見,如果過期的key不多,它最多每秒回收200條左右,如果有超過25%的key過期了,它就會做得更多,但只要key不被主動get,它占用的內(nèi)存什么時候最終被清理掉只有天知道。在主從復(fù)制環(huán)境中,由于上述原因存在已經(jīng)過期但是沒有刪除的key,在主snapshot時并不包含這些key,因此在slave環(huán)境中我們往往看到dbsize較master是更小的。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號