面试题:Redis中string数据类型的底层实现
面试题:Redis中string数据类型的底层实现
题目分析
这个题目考察的是Redis的数据类型的底层知识,redis速度快,跟redis的数据结构简单有一定关系。
题目解答
redis的String类型在底层实现中有三种实现方式。
- 使用整数值实现的字符串对象,使用的是8个字节的long类型进行存储。
- 使用embstr编码的动态字符串实现的字符串对象,存储长度小于44字节的字符串
- 动态字符串实现的字符串对象,存储长度大于44字节的字符串。
redis会根据值的类型和长度自动选择存储的类型。
动态字符串是redis写的一个抽象数据类型,存储了字符串的长度、空闲长度和字符数组等字段。