OBJECT ENCODING
返回Redis对象的内部编码。
语法
OBJECT ENCODING key
引入版本:2.2.3
复杂度摘要:O(1)
返回存储在 key 的 Redis 对象的内部编码。
必需参数
key
键名称。
详细说明
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,编码为列表包的基数树。
一旦执行导致Redis无法保留节省空间的编码的操作,所有特殊编码类型都会自动转换为通用类型。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
对于主动-主动数据库,请改用 CRDT.DEBUG ENCODING。 |
返回值
RESP2
以下之一: * 无回复:如果键不存在。 * 批量字符串回复:对象的编码。
RESP3
资料来源:Redis 官方 OBJECT ENCODING 文档;中文内容参考 Redis 文档许可。