redise数据结构之之字符串和链表

来源:互联网 发布:淘宝发论文被骗 编辑:程序博客网 时间:2024/06/06 03:10

字符串

1 SDS的定义

struct sdshdr { int len;//记录buf中使用的字节数量,=sds所保存字符串的长度 int free;//记录buf中未使用的字节长度 char buf[];//字节数组,用于保存字符串 }

1.1 sds 与c字符串的区别

c要获取一个字符串必需遍历所有O(N),而sds因为有len所以只要访问len就可以知道其长度,O(1)

Tables C字符串 SDS api不安全可能会造成缓冲区溢出 安全 修改字符串长度N次必须执行N次内存重分配 最多N次 只能保存文本数据 文本或者二进制数据

链表

被广泛用于实现redis的各种功能
双端链表
无环链表
可以吧平常各种不同类型的值

原创粉丝点击