redis五种数据类型及其底层数据结构
参考链接:https://www.imooc.com/article/324827
1. redis中存储键值对的数据结构
2. 五种数据类型和相应的数据结构
- 双向链表
链表节点在内存中分散存储 - 压缩列表
节点在内存中连续存储,但与数组不同的是,每个节点所占的内存大小可以不同。
List底层采用压缩列表和双向链表存储,当元素数量小于512个且元素长度均小于64B时,采用压缩列表,否则采用双向链表。
- 哈希表
底层是字典
Hash底层采用压缩列表和哈希表存储。当所有键值对的键和值长度都小于64B且数量小于512时,就使用压缩列表,先放入key,再放入value;否则就使用哈希表,直接将每一个键值对存入字典中。
- 跳表
跳表在链表的基础上,增加了多级索引
sorted set底层采用压缩表和跳跃表。当元素数量小于128个且元素长度均小于64B时,采用压缩表;否则,采用跳跃表,加快元素的查找速度。