?
This document uses PHP Chinese website manual Release
OBJECT subcommand [arguments [arguments ...]]
自2.2.3起可用。
時間復雜度: O(1)適用于所有當前實施的子命令。
OBJECT 命令允許檢查與鍵相關(guān)的 Redis 對象的內(nèi)部。對于調(diào)試或了解您的密鑰是否使用特殊編碼的數(shù)據(jù)類型以節(jié)省空間非常有用。在使用 Redis 作為緩存時,您的應(yīng)用程序也可能使用 OBJECT 命令報告的信息來實施應(yīng)用程序級別密鑰驅(qū)逐策略。
OBJECT命令支持多個子命令:
OBJECT REFCOUNT <key>
返回與指定鍵相關(guān)聯(lián)的值的引用數(shù)。該命令主要用于調(diào)試。
OBJECT ENCODING <key>
返回用于存儲與鍵關(guān)聯(lián)的值的內(nèi)部表示形式。
OBJECT IDLETIME <key>
返回自指定鍵存儲的對象空閑以來的秒數(shù)(未通過讀取或?qū)懭氩僮髡埱螅?。雖然該值以秒為單位返回,但此計時器的實際分辨率為10秒,但在將來的實施中可能會有所不同。
對象可以用不同的方式進行編碼:
字符串可以編碼為raw
(普通字符串編碼)或int
(以64位有符號間隔表示整數(shù)的字符串以這種方式編碼以節(jié)省空間)。
列表可以編碼為ziplist
或linkedlist
。本ziplist
是用來節(jié)省空間的小型列出特定表示。
集可以編碼為intset
或hashtable
。這intset
是一個特殊的編碼,用于僅由整數(shù)組成的小集合。
哈希可以編碼為ziplist
或hashtable
。這ziplist
是一個用于小哈希的特殊編碼。
排序集可以編碼為ziplist
或skiplist
格式。至于列表類型,小的排序集合可以使用特殊編碼ziplist
,而skiplist
編碼是與任何大小的排序集合一起工作的編碼。
所有特殊編碼的類型會在您執(zhí)行操作后自動轉(zhuǎn)換為通用類型,使Redis無法保留節(jié)省空間的編碼。
不同的子命令使用不同的返回值。
子命令refcount
和idletime
返回整數(shù)。
子命令encoding
返回批量回復。
如果您嘗試檢查的對象丟失,則返回空批量答復。
redis> lpush mylist "Hello World"(integer) 4 redis> object refcount mylist(integer) 1 redis> object encoding mylist"ziplist" redis> object idletime mylist(integer) 10
在以下示例中,您可以看到一旦Redis不再能夠使用節(jié)省空間的編碼,編碼如何更改。
redis> set foo 1000OK redis> object encoding foo"int" redis> append foo bar(integer) 7 redis> get foo"1000bar" redis> object encoding foo"raw"