W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
除了前面介紹過(guò)的 type
、 encoding
、 ptr
和 refcount
四個(gè)屬性之外, redisObject
結(jié)構(gòu)包含的最后一個(gè)屬性為 lru
屬性, 該屬性記錄了對(duì)象最后一次被命令程序訪問(wèn)的時(shí)間:
typedef struct redisObject {
// ...
unsigned lru:22;
// ...
} robj;
OBJECT IDLETIME 命令可以打印出給定鍵的空轉(zhuǎn)時(shí)長(zhǎng), 這一空轉(zhuǎn)時(shí)長(zhǎng)就是通過(guò)將當(dāng)前時(shí)間減去鍵的值對(duì)象的 lru
時(shí)間計(jì)算得出的:
redis> SET msg "hello world"
OK
# 等待一小段時(shí)間
redis> OBJECT IDLETIME msg
(integer) 20
# 等待一陣子
redis> OBJECT IDLETIME msg
(integer) 180
# 訪問(wèn) msg 鍵的值
redis> GET msg
"hello world"
# 鍵處于活躍狀態(tài),空轉(zhuǎn)時(shí)長(zhǎng)為 0
redis> OBJECT IDLETIME msg
(integer) 0
注意
OBJECT IDLETIME 命令的實(shí)現(xiàn)是特殊的, 這個(gè)命令在訪問(wèn)鍵的值對(duì)象時(shí), 不會(huì)修改值對(duì)象的 lru
屬性。
除了可以被 OBJECT IDLETIME 命令打印出來(lái)之外, 鍵的空轉(zhuǎn)時(shí)長(zhǎng)還有另外一項(xiàng)作用: 如果服務(wù)器打開了 maxmemory
選項(xiàng), 并且服務(wù)器用于回收內(nèi)存的算法為 volatile-lru
或者 allkeys-lru
, 那么當(dāng)服務(wù)器占用的內(nèi)存數(shù)超過(guò)了 maxmemory
選項(xiàng)所設(shè)置的上限值時(shí), 空轉(zhuǎn)時(shí)長(zhǎng)較高的那部分鍵會(huì)優(yōu)先被服務(wù)器釋放, 從而回收內(nèi)存。
配置文件的 maxmemory
選項(xiàng)和 maxmemory-policy
選項(xiàng)的說(shuō)明介紹了關(guān)于這方面的更多信息。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: