redis五种常见的数据结构:
一、String:存储结构为动态字符串
二、hash:哈希表和压缩列表
三、list:双向链表和压缩列表
四、set:哈希表和整数数组
五、zset:跳跃表和压缩列表
这是我们使用时的五种数据结构,但数据的存储并不是以这五种结构存储的,
在redis中数据的存储结构有下面六种:
一、动态字符串:对普通的字符串进行扩展
二、整数数组:
三、压缩列表:比一般的数组多了几个节点,在表头有三个字段 zlbyte(列表长度)、zltail(列表尾偏移量)、zllen(列表中entry的个数)
四、双向链表
五、跳跃表:对有序链表加了几级索引,提高查询效率 n(logN)
六、哈希表
性能相关:list用于随机读取效率会比较低
统计操作比较高效,应为当集合类型采用压缩列表、双向链表、整数数组这些结构时,这些结构中记录了元素的个数。
键与值之间是通过全局的hash来建立关联的
hash扩容时采用的是渐进式哈希。