🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 2.7.2 编码(encoding)和底层实现 对象的`ptr`指针指向对象的底层数据结构,这些数据结构由对象的`encoding`属性决定,由以下几种: 常量 | 编码所对应的底层数据结构 ---- | ---- REDIS_ENCODING_INT | long类型的整数 REDIS_ENCODING_EMBSTR | embstr编码的简单字符串 REDIS_ENCODING_RAW | 简单动态字符串 REDIS_ENCODING_HT | 字典 REDIS_ENCODING_LINKEDLIST | 双端链表 REDIS_ENCODING_ZIPLIST | 压缩列表 REDIS_ENCODING_INTSET | 整数集合 REDIS_ENCODING_SKPILIST | 跳跃表和字典 每种类型的对象都至少使用了两种编码,下面是每种类型的对象使用的编码: 类型 | 编码 | 对象 ---- | ---- | ---- REDIS_STRING | REDIS_ENCODING_INT | 使用整数值实现的字符串对象 REDIS_STRING | REDIS_ENCODING_EMBSTR | 使用embstr编码实现的简单动态字符串实现的字符串对象 REDIS_STRING | REDIS_ENCODING_RAW | 使用简单字符串实现的字符串对象 REDIS_LIST | REDIS_ENCODING_ZIPLIST | 使用压缩列表实现的列表对象 REDIS_LIST | REDIS_ENCODING_LINKEDLIST | 使用双端链表实现的列表对象 REDIS_HASH | REDIS_ENCODING_ZIPLIST | 使用压缩列表实现的哈希对象 REDIS_HASH | REDIS_ENCODING_HT | 使用字典实现的哈希对象 REDIS_SET | REDIS_ENCODING_INTSET | 使用整数集合实现的集合对象 REDIS_SET | REDIS_ENCODING_HT | 使用字典实现的集合对象 REDIS_ZSET | REDIS_ENCODING_ZIPLIST | 使用压缩列表实现的有序集合 REDIS_ZSET | REDIS_ENCODING_SKIPLIST | 使用跳跃表实现的有序集合 ``` set msg "msg1" OBJECT ENCODING msg ```