数据结构

1.Redis简单动态字符串

Redis Simple Dynamic String

底层结构

Redis 对buf[]中的数据是二进制数据保存的。

 

redis数据结构-字符串

 

计算长度时间复杂度

C语言字符串,计算长度,遍历字符串, 时间复杂度O(n)

Redis字符串,直接给出了长度,时间复杂度O(1)

redis数据结构-字符串

 

空间分配策略

Redis如果每次修改字符串长度,都进行“重新分配内存空间”操作的话, 那么,连续更改操作,会导致性能受到影响。

故采用了两种策略:空间预分配和惰性空间释放

空间预分配策略

redis数据结构-字符串

redis数据结构-字符串

 

 

惰性空间释放策略

释放多余的内存空间,不会触发“重新分配内存空间”操作,只计数到free。

redis数据结构-字符串

 

 

redis数据结构-字符串

相关文章: