为什么会选择44作为两种编码的分堺点在3.2版本之前为什么是39?这两个值是怎么得出来的呢
第一步就完成了,RedisObject对象头信息会占用16字节的大小这个大小通常是固定不变的.
2) sds占用字节大小计算
内存分配器jemalloc分配的内存如果超出了64个字节就认为是一个大字符串,就会用到raw编码
前面提到 SDS 结构体中的 content 的字符串是以字節\0结尾的字符串,之所以多出这样一个字节是为了便于直接使用 glibc 的字符串处理函数,以及为了便于字符串的调试打印输出所以我们还偠减去1字节
所以,redis 3.2版本之后embstr最大能容纳的字符串长度是44之前是39。长度变化的原因是SDS中内存的优化