2024 阅读 Redis 3.0 源代码:对象
2024 年,Redis 已经到了 7.x 的版本了,但是我参考了书籍《Redis 设计与实现》,所以决定使用 3.0 版本的源代码。
Redis 内部对象系统在内部使用八种编码,对外部提供五种数据类型。
Redis 内部对象系统使用了 C 语言的结构体:
八种编码
查询某个 key 的编码使用如下命令:
object encoding keyname
五种数据类型

查询某个 key 的类型使用如下命令:
type keyname
每种数据类型底层可以使用哪些编码?
REDIS_ENCODING_EMBSTR
和 REDIS_ENCODING_RAW
相比有啥优势?
- 减少申请、释放内存的次数;
- 分配连续内存,更利于 CPU 缓存;
这些优势,只有在字符串较短时才能体现出来。