Redis 物件的空轉時長 總結

2021-07-26 08:58:25 字數 1046 閱讀 6407

8.10 物件的空轉時長

typedef struct redisobject robj;

object idletime命令可以列印出給定鍵的空轉時長,這一空轉時長就是通過將當前時間減去鍵的值物件的lru時間計算得出的:

redis> set msg "hello world"

ok#等待一小段時間

redis> object idletime msg

(integer) 20

#等待一陣子

redis> object idletime msg

(integer) 180

#訪問msg鍵的值

redis> get msg

"hello world"

#鍵處於活躍狀態,空轉時長為0

redis> object idletime msg

(integer) 0

注意object idletime命令的實現是特殊的,這個命令在訪問鍵的值物件時,不會修改值物件的lru屬性。

除了可以被object idletime命令列印出來之外,鍵的空轉時長還有另外一項作用:如果伺服器開啟了maxmemory選項,並且伺服器用於**記憶體的演算法為volatile-lru或者allkeys-lru,那麼當伺服器占用的記憶體數超過了maxmemory選項所設定的上限值時,空轉時長較高的那部分鍵會優先被伺服器釋放,從而**記憶體。

配置檔案的maxmemory選項和maxmemory-policy選項的說明介紹了關於這方面的更多資訊。

8.11 重點回顧

❑redis資料庫中的每個鍵值對的鍵和值都是乙個物件。

❑redis共有字串、列表、雜湊、集合、有序集合五種型別的物件,每種型別的物件至少都有兩種或以上的編碼方式,不同的編碼可以在不同的使用場景上優化物件的使用效率。

❑伺服器在執行某些命令之前,會先檢查給定鍵的型別能否執行指定的命令,而檢查乙個鍵的型別就是檢查鍵的值物件的型別。

❑redis的物件系統帶有引用計數實現的記憶體**機制,當乙個物件不再被使用時,該物件所占用的記憶體就會被自動釋放。

❑redis會共享值為0到9999的字串物件。

redis筆記 物件的空轉時長

1.redisobject的lru屬性記錄了該物件最後一次被命令訪問的時間 2.object idletime可以列印給定鍵的空轉時長,通過當前時間減去鍵的值物件的lru時間 3.object idletime 在訪問鍵的值物件時,不會修改物件的lru屬性 4.如果伺服器開啟了maxmemory選項...

redis中的物件

1 redis中是通過物件來儲存鍵和鍵值,其中物件是由sds 鍊錶 字典 跳躍表 整數合集 壓縮列表 這些基本 型別組成,2 redis 對應基於引用計數的記憶體 機制,當物件的引用計數為零時,物件會比 通過引用計數可以 實現物件共享,物件共享主要是多個資料庫鍵可以共享乙個物件來節約記憶體。3 re...

Redis 物件的使用

redis是乙個開源的使用ansi c語言編寫 遵守bsd協議 支援網路 可基於記憶體亦可持久化的日誌型 key value資料庫,並提供多種語言的api。redis 是速度非常快的非關係型 nosql 記憶體鍵值資料庫,可以儲存鍵和五種不同型別的值之間的對映。鍵的型別只能為字串,值支援五種資料型別...