首页 > TAG信息列表 > initlen

Redis源码阅读(一) SDS简单动态字符串

tag: #Redis #源码阅读 #数据结构 代码链接: https://github.com/redis/redis/blob/unstable/src/sds.h https://github.com/redis/redis/blob/unstable/src/sds.c 数据结构 sds的定义 sds定义是一个char* 类型指针的别名, 我们在传递sds的时候实质上就是传递的C风格字符串. 实际

【redis源码学习】simple dynamic strings(简单动态字符串 sds)

文章目录 接化sds 结构分析基本操作创建字符串释放字符串sdsMakeRoomFor 扩容 小tip:`__attribute__ ((__packed__))` 发 接 阅读源码之前,先接几个问题,我觉得还蛮有意思的。 Q1:如何实现一个扩容方便且二进制安全(不会被\0打断)的字符串呢? Q2:SDS如何兼容C语言函数呢? Q3:SDS

redis源码学习--数据结构:SDS设计和实现

redis源码学习--数据结构:SDS设计和实现 SDS数据结构定义API实现 SDS数据结构定义 SDS是simple dynamic string的缩写,是redis定义的字符串的数据结构。根据需要保存的字符串长度的差异,不同结构体定义如下,使用的柔性数组,例如sizeof(struct sdshdr5 )只会计算flags的长度,如

Redis源码入门-字符串sds,sdshdr

sds,全称Simple Dynamic Strings,是Redis自定义的一个字符串类型。 typedef char *sds; 看到这你肯定内心觉得Redis在逗你,这不就是一个字符数组么,怎么就Simple Dynamic Strings了呢 !没错,我当时也是这么觉得的,但是仔细阅读源码后发现sds并不是一个人在战斗,它还有战友sdshdr,sdshdr是

redis-sds简单字符串(sds.h、sds.c)

sds简单字符串(sds.h、sds.c) 部分源码解读(5.0.8版本) 定义结构: /* Note: sdshdr5 is never used, we just access the flags byte directly. * However is here to document the layout of type 5 SDS strings. */ struct __attribute__ ((__packed__)) sdshdr5 { unsigned cha