*Redis object-encoding 命令

*语法

OBJECT ENCODING key

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

Redis 对象可以以不同的方式编码:

  • 字符串可以编码为:

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

    • linkedlist,简单列表编码。不再使用,是旧的列表编码。
    • ziplist,Redis <= 6.2,用于小列表的空间高效编码。
    • listpack,Redis >= 7.0,用于小列表的空间高效编码。
    • quicklist,编码为 ziplist 或 listpack 的链表。
  • 集合可以编码为:

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

    • zipmap,不再使用,是旧的哈希编码。
    • hashtable,普通哈希编码。
    • ziplist,Redis <= 6.2,用于小哈希的空间高效编码。
    • listpack,Redis >= 7.0,用于小哈希的空间高效编码。
  • 有序集合可以编码为:

    • skiplist,普通有序集合编码。
    • ziplist,Redis <= 6.2,用于小有序集合的空间高效编码。
    • listpack,Redis >= 7.0,用于小有序集合的空间高效编码。
  • 流可以编码为:

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

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

*返回信息