OBJECT ENCODING

语法
OBJECT ENCODING key
可用版本
Redis 开源版 2.2.3
时间复杂度
O(1)
ACL 类别
@keyspace, @read, @slow,

返回存储在 <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 无法保留节省空间的编码,所有特殊编码类型都会自动转换为通用类型。

RESP2 回复

以下之一

RESP3 回复

以下之一


评价此页
返回顶部 ↑