Redis-2-数据类型与底层数据结构

本文最后更新于:2022年7月30日 下午

字符串

Redis中的字符串底层是简单动态字符串SDS。
比普通的字符串多了capacity和len存储容量信息和字符串已用大小信息。

SDS结构体

1
2
3
4
5
6
7
struct SDS
{
容量,字节数组的总容量
长度,字符串的长度
flag
byte[] content; 真正存放字符串的地方
}

embstr 和 raw的区别和内存分配

扩容策略

长度小于1M时,加倍扩容;
长度大于1M,为了避免加倍扩容导致的空间浪费,每次扩容只会分配1M的冗余空间。

问题

什么场合下会用到字符串的append方法?

字典 dict

压缩列表

比普通的数组多了4个字段,存储额外的信息。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!