SDS 动态字符串

Redis 的 String 类型实现并不是 C 语言中的字符串,而是自己编写了 SDS(简单动态字符串)来作为底层实现。

和 C 语言的字符数组对比

SDS 结构设计

516738c4058cdf9109e40a7812ef4239.webp

结构中的每个成员变量分别介绍下:

总的来说,Redis 的 SDS 结构在原本字符数组之上,增加了三个元数据:len、alloc、flags,用来解决 C 语言字符串的缺陷。

SDS 如何解决 C 语言字符串的缺陷