第二章 简单动态字符串
1.sds的定义
2.sds与C风格字符串的区别
- 常数时间复杂度获取字符串长度
- 杜绝缓冲区溢出
- 减少修改字符串时带来的内存重分配次数(有未使用空间)
- 空间预分配。对sds修改后,如果len属于小于1MB,则分配与len属性相同大小的未使用空间(另外还要占用一个字节保存空字符),如果大于1MB,则分配1MB。
- 惰性空间释放。字符串缩短后并不会释放内存,可以调用API释放
- 二进制安全
- 兼容C字符串函数(sds->buf,同样以空字符串结尾)
第三章 链表
1.链表的定义
redis链表特性:双端、无环,带表头和表尾指针,带长度计数器,多态(链表使用void*保存值,可以保存不同的值)
第四章 字典
1.哈希表定义