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 記憶體鍵值資料庫,可以儲存鍵和五種不同型別的值之間的對映。鍵的型別只能為字串,值支援五種資料型別...