redis五种数据类型及其底层数据结构

参考链接:https://www.imooc.com/article/324827

1. redis中存储键值对的数据结构

image

2. 五种数据类型和相应的数据结构

image

  • 双向链表
    链表节点在内存中分散存储
  • 压缩列表
    节点在内存中连续存储,但与数组不同的是,每个节点所占的内存大小可以不同。

List底层采用压缩列表和双向链表存储,当元素数量小于512个且元素长度均小于64B时,采用压缩列表,否则采用双向链表。

  • 哈希表
    底层是字典

Hash底层采用压缩列表和哈希表存储。当所有键值对的键和值长度都小于64B且数量小于512时,就使用压缩列表,先放入key,再放入value;否则就使用哈希表,直接将每一个键值对存入字典中。

  • 跳表
    跳表在链表的基础上,增加了多级索引
    image

sorted set底层采用压缩表和跳跃表。当元素数量小于128个且元素长度均小于64B时,采用压缩表;否则,采用跳跃表,加快元素的查找速度。

posted @ 2022-06-06 22:04  SmartLiu  阅读(129)  评论(0编辑  收藏  举报