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

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

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

ttl key 

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

pexpire key 毫秒數(shù)

設(shè)置生命周期。

pttl  key

以毫秒返回生命周期。

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)