基本编码方式是 RAW,基于简单动态字符串(SDS)实现,存储上限为 512M
如果存储的 SDS 的长度小于 44 字节,则会采用 EMBSTR 编码,此时 object head 与 SDS是一段连续空间,申请内存只需要调用一次内存分配函数,效率更高
如果存储的字符串是整数值,并且大小在 LONG_MAX 范围内,则会采用 INT 编码,直接保存在 RedisObject 的 ptr 指针位置(刚好 8 字节),不再需要 SDS
List 列表是简单的字符串列表,按照插入顺序排序,可以从头部或尾部向 List 列表添加元素。
哪一个数据结构能满足上述特征?
Set 类型是一个无序并唯一的键值集合,它的存储顺序不会按照插入的先后顺序进行存储。同时 Set 对查询效率要求极高。