SDS
1.Redis只会用C字符串作为字面量,Redis在大多数情况下,使用SDS(Simple Dynamic String,简单动态字符串)作为字符串表示
比起C字符串,SDS有以下优点
1)常数复杂度获取字符串长度
2)杜绝缓存区溢出
3)减少修改字符串长度所需的内存重分配次数
4)二进制安全
5)兼容部分C字符串函数
链表
1)链表被广泛应用于显示Redis的各种功能,比如列表键、发布与订阅、慢查询、监视器等
2)每个链表节点都由一个listNode结构来表示,每个节点都有一个指向前置节点和后置节点的指针,所以Redis的实现是双端链表。
3)每个链表使用一个list结构来表示,这个结构带有表头节点指针、表尾节点指针,以及链表长度等信息。
4)因为链表表头节点的前置节点和表尾节点的后置节点都指向NULL,所以Redis的链表实现是无环链表
5)通过为链表设置不同的类型特定函数,Redis可以用于保存不同类型的值