文章目录 一、SDS的源码分析 1.1、Redis底层数据结构 1.2、SDS概述 1.3、SDS结构体 sdshdr5 sdshdr8 sdshdr16 sdshdr32 sdshdr64 1.4、API解析 sdsnewlen sdsfree sdscatlen sdsMakeRoomFor 1.6、int、embstr和raw 字符串的三种编码 createStringObject tryObjectEncoding 1.7、SDS的设计思想和优势 一、SDS的源码分析 1.1、Redis底层数据结构 学习底层数据结构的意义: 1、数据结构的设计是Redis设计的精髓所在 2、掌握底层数据结构可以更好的去使用基本数据类型 1.2、SDS概述 SDS(Simple Dynamic String) 简单动态字符串,是Redis用来实现字符串的一种数据结构。 SDS用途: 存储key、值(字符串、整数) AOF缓冲区 用户输入缓冲 1.3、SDS结构体 sds.h sdshdr5 struct __attribute__ ((__packed__)) sdshdr5