您的位置:首页 > 数据库 > Redis

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
支持自动扩展
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: