Redis-简单动态字符串

这是读redis设计与实现的一系列读书笔记

1、SDS定义

C语言字符串:用一个 \0 结尾的 char 数组来表示
SDS:redis自己定义的简单动态字符串(simple dyanmic string,SDS)的抽象类型,并且将SDS作为redis的默认字符串
例如:
redis >set msg "hello redis"
redis 会在数据库中创建一个新的键值对
键:一个字符串对象,底层实现是一个字符串"msg"的SDS
值:同样是一个"hello redis" 的SDS

每个 sds.h/sdshdr 结构表示一个 SDS 值:

struct sdshdr {
// 记录 buf 数组中已使用字节的数量
// 等于 SDS 所保存字符串的长度
int len;

// 记录 buf 数组中未使用字节的数量
int free;

// 字节数组,用于保存字符串
char buf[];

};

2、SDS与C字符串的区别

3、SDS API

posted @ 2017-11-15 11:24  starryfei  阅读(230)  评论(0编辑  收藏  举报