当前位置:编程学习 > C/C++ >>

Redis源码学习之[动态字符串]

介绍
由于在标准C中没有字符串这一类型,因而Redis实现了一个自己的字符串sds。
源文件
sds.h sds.c
分析
数据结构
[cpp]  
// sds 类型  
typedef char *sds;  
  
// sdshdr 结构  
struct sdshdr {  
  
    // buf 已占用长度  
    int len;  
  
    // buf 剩余可用长度  
    int free;  
  
    // 实际保存字符串数据的地方  
    char buf[];  
};  
 
 
特点
主要支持如下操作
new,dump,cat,cpy,printf,trim,range,tolower/toupper,cmp,split,fromlonglong,以及和hex之间的转换等。
技巧:
sds就像是管理内存一样不过这里是管理的字符,需要保存其长度和空闲空间
使用预分配空间来扩展sds
支持自动扩展
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,