redis数据结构

redis五种常见的数据结构:

一、String:存储结构为动态字符串

二、hash:哈希表和压缩列表

三、list:双向链表和压缩列表

四、set:哈希表和整数数组

五、zset:跳跃表和压缩列表

这是我们使用时的五种数据结构,但数据的存储并不是以这五种结构存储的,

在redis中数据的存储结构有下面六种:

一、动态字符串:对普通的字符串进行扩展

二、整数数组:

三、压缩列表:比一般的数组多了几个节点,在表头有三个字段 zlbyte(列表长度)、zltail(列表尾偏移量)、zllen(列表中entry的个数)

四、双向链表

五、跳跃表:对有序链表加了几级索引,提高查询效率  n(logN)

六、哈希表

性能相关:list用于随机读取效率会比较低

                  统计操作比较高效,应为当集合类型采用压缩列表、双向链表、整数数组这些结构时,这些结构中记录了元素的个数。

键与值之间是通过全局的hash来建立关联的

hash扩容时采用的是渐进式哈希。

原文地址:https://www.cnblogs.com/zhaolei1996/p/14199495.html