七星创客模式解析

List数据结构

List是一个有序(按加入的时序排序)的数据结构,Redis采用quicklist(双端链表) 和 ziplist 作为List的底层实现。可以通过设置每个ziplist的最大容量,quicklist的数据压缩范围,提升数据存取效率

list-max-ziplist-size -2 // 单个ziplist节点最大能存储 8kb ,超过则进行分裂,将数据存储在新的ziplist节点中 对应redis.conf的配置 8KB 不推荐数据设置太大 压缩效率低且占空间

list-compress-depth 1 // 0 代表所有节点,都不进行压缩,1, 代表从头节点往后走一个,尾节点往前走一个不用压缩,其他的全部压缩,2,3,4 … 以此类推

在这里插入图片描述
在版本3.2之前,Redis 列表list使用两种数据结构作为底层实现:

在这里插入图片描述压缩列表ziplist
双向链表linkedlist
因为双向链表占用的内存比压缩列表要多, 所以当创建新的列表键时, 列表会优先考虑使用压缩列表, 并且在有需要的时候, 才从压缩列表实现转换到双向链表实现。

压缩列表转化成双向链表条件

创建新列表时 redis

猜你喜欢

转载自blog.csdn.net/LiRuoXin_/article/details/129934645