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