Redis五种数据类型的底层结构
Redis五种数据类型的底层结构
Redis中有一个核心对象叫做redisObject ,用来表示所有的键值对,用redisObject结构体来表示string、hash、list、set、zset这五种基本数据类型。
string 字符串
redis字符串的存储方式有两种:SDS(简单动态字符串)、直接存储(存储对象为整数时使用)
SDS特点:可动态扩容、二进制安全、快速遍历字符串 、兼容传统的C字符串。
string的编码:int、raw、embstr
直接存储,使用int编码
int:存储对象为整数时使用 SDS存储,使用raw或embstr编码
raw:存储对象为长度大于32位的字符串时使用(创建/释放对象时共有两次内存分配:1、创建/释放redisObject对象,2、创建/释放sdshdr结构。此时redisObject和sdshdr并不在一个连续空间内) embstr
共有 0 条评论