简单动态字符串(SDS)
1 | struct __attribute__ ((__packed__)) sdshdr8 { |
不包括头的意思是:redis在新建完sds,并不会直接返回这个结构体,而是返回buf的地址,这样就可以直接使用string.h
里面的方法进行处理,所以下面:
1 |
这个就是输入T(是sdshdrT),s就是字符串的首地址,这样处理就可以通过字符串的首地址获得整个结构体
ziplist
结构为:
1 |
|
1 | struct __attribute__ ((__packed__)) sdshdr8 { |
不包括头的意思是:redis在新建完sds,并不会直接返回这个结构体,而是返回buf的地址,这样就可以直接使用string.h
里面的方法进行处理,所以下面:
1 | #define SDS_HDR(T,s) ((struct sdshdr##T *)((s)-(sizeof(struct sdshdr##T)))) |
这个就是输入T(是sdshdrT),s就是字符串的首地址,这样处理就可以通过字符串的首地址获得整个结构体
结构为:
1 |
|