redis--内部结构--quicklist

list的内部实现是双向链表,确实是一个双向链表,而且是一个ziplist的双向链表。quicklist的每一个节点都是一个ziplist。ziplist是一个内存紧凑的列表(各个数据项在内存上都是前后相邻的)。比如,一个包含3个节点的quicklist,如果每个节点的ziplist又包含4个数据项,那么对外表现上,这个list就总共包含12个数据项。
1、quicklist这样设计的优点
双向链表便于在表的两端进行push和pop操作,但是它的内存开销比较大;
ziplist由于是一整块连续的内存,所以存储效率较高;但是它不利于修改,这样会导致大量数据的移动;
2、到底一个quicklist节点包含多长的ziplist合适呢?
这个是由用户自己决定的,用户可以根据自己使用的情况,来设置ziplist的大小;
这里写图片描述
图片来自:http://mp.weixin.qq.com/s/umi9SMrNOvMcMGO-Fs3VEw

引用《Redis设计与实现》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值