Redis源码学习之【动态字符串】
2014-01-06 11:52
197 查看
介绍
由于在标准C中没有字符串这一类型,因而Redis实现了一个自己的字符串sds。源文件
sds.h sds.c分析
数据结构
[cpp]view plaincopy
// 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
支持自动扩展
相关文章推荐
- Redis源码学习之【动态字符串】
- redis源码分析(二)、sds动态字符串学习总结
- Redis源码学习——简单动态字符串SDS(Simple Dynamic String)
- 结合redis设计与实现的redis源码学习-2-SDS(简单动态字符串)
- (一)redis源码学习之简单动态字符串(SDS)
- Redis源码分析二、Redis简单动态字符串
- redis源码分析(三)redis命令学习总结—string字符串
- redis源码学习-sds字符串结构
- 【redis源码分析】动态字符串--sds
- redis学习笔记二(简单动态字符串)
- 结合redis设计与实现的redis源码学习-8.2-t_string(字符串键)
- redis源码分析之简单动态字符串sds
- redis 学习笔记二 (简单动态字符串)
- Redis源码阅读笔记(1)-- 动态字符串sds
- Redis源码剖析和注释(二)--- 简单动态字符串
- redis源码分析笔记2- redis的数据类型-动态字符串sds
- Redis源码阅读笔记-动态字符串(SDS)结构
- redis 学习笔记二 (简单动态字符串)
- 唯快不破:redis源码剖析04-sds动态字符串
- Redis源码解析:01简单动态字符串SDS