zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis五种数据结构的底层编码

2023-03-15 22:06:15 时间

Redis底层编码分类:

每种类型的对象都至少使用了两种不同的编码:

其中REDIS_ENCODING_ENBSTR和REDIS_ENCODING_RAW都是用于保存字符串值,其中embstr编码是专门用于保存短字符串的一种优化编码方式,这种编码和raw编码一样,都使用redisObject结构和sdshdr结构结构来表示字符串对象,但raw编码会调用两次内存分配函数来分别创建redisObject结构和sdshdr结构,而embstr编码则通过调用一次内存分配一块连续的空间,空间中依次包含redisObject结构和sdshdr两个结构,如下图所示:

参考文档:

1、《Redis设计与实现》

2、https://blog.csdn.net/XiyouLinux_Kangyijie/article/details/78045385  Redis的embstr与raw编码方式不再以39字节为界了