OBJECT ENCODING

用法
OBJECT ENCODING key
复杂度
O(1)
起始版本
2.2.3
ACL 类别
@keyspace, @read, @slow

返回存储在 <key> 处的 Valkey 对象的内部编码。

Valkey 对象可以通过不同的方式进行编码

  • 字符串可以编码为

    • raw,普通字符串编码。
    • int,表示 64 位有符号整数范围内的字符串,以此方式编码以节省空间。
    • embstr,一种嵌入式字符串,其中内部的简单动态字符串 sds 是一个不可修改的字符串,与对象本身在同一块内存中分配。embstr 可以是长度达到硬编码限制 OBJ_ENCODING_EMBSTR_SIZE_LIMIT 或 44 字节的字符串。
  • 列表可以编码为

    • linkedlist,简单列表编码。不再使用,一种旧的列表编码。
    • listpack,一种用于小型列表的空间高效编码。
    • quicklist,编码为 ziplist 或 listpack 的链表。
  • 集合可以编码为

    • hashtable,普通集合编码。
    • intset,一种特殊编码,用于仅由整数组成的小型集合。
    • listpack,一种用于小型集合的空间高效编码。
  • 哈希可以编码为

    • zipmap,不再使用,一种旧的哈希编码。
    • hashtable,普通哈希编码。
    • listpack,一种用于小型哈希的空间高效编码。
  • 有序集合可以编码为

    • skiplist,普通有序集合编码。
    • listpack,一种用于小型有序集合的空间高效编码。
  • 流可以编码为

    • stream,编码为 listpack 的基数树。

一旦执行了使 Valkey 无法保留节省空间编码的操作,所有特殊编码的类型都会自动转换为通用类型。

RESP2 回复

以下之一

RESP3 回复

以下之一