redis底层数据结构--简单动态字符串

redis中使用c语言的字符床存储字面量,默认字符串存储采用自己构建的简单动态字符串SDS(symple dynamic string) 

redis包含字符串的键值对都是用SDS实现的

结构s d s.h/sdshdr

struct sdshdr{
    int len;  //buf使用的长度   SDS的长度
    int free;   //buf未使用的长度
    char buf[];   //字节数据,保持字符串
}

free属性值 0,表示SDS没有分配使用空间

len属性值 5 表示SDS保存了5个字节长度的字符串

buf属性值char类型的数组,最欠扁保存 R e d i s五个字符,最后 \0 空字符结束

猜你喜欢

转载自www.cnblogs.com/hellohell/p/9024026.html