关注
Q3:
我们都知道Redis里面除了有链表,字典,跳表,还有压缩列表,请你简单介绍一下压缩列表的结构,然后解释一下压缩列表中的连锁更新问题。
A:
之所以叫压缩列表是因为没有指针参与的原因,结构大概是`zlbytes、 zltail、zllen、entrys、zlend`这几个构成,然后zlbytes是整个压缩列表的总字节数. 其中的entrys里面记录着所有的内容,但是因为没有指针,所以就在每个entry上添加了一个`pre_entry`用来记录上一个entry项的长度,用于遍历。
而且这里的pre_entry不是固定大小,如果前一个项大于254字节,它就会变成5个字节,其中第一个字节为0xEF,剩下4个字节则用于保存长度,这样就会导致一个问题,比如新增加一个大于254的节点,但是表头的pre_entry是1个字节,然后将其进行扩容,这样就会导致**后面的每个项都需要移位**,另外,如果这个表项修改完之后变成了大于254字节,就会后面的同样需要更新,依此类推,**就会导致连锁更新问题**。但是看书上给出的答案就发现连锁更新不会造成很严重的性能问题:**因为多个连续的临界表项才会可能被引发,对于少量节点的更新并不会影响性能**。
查看原帖
点赞 评论
相关推荐
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 什么是优秀的实习经历 #
8624次浏览 214人参与
# 实习简历求拷打 #
13322次浏览 162人参与
# 被上班搭子“传染”了哪些习惯 #
5708次浏览 99人参与
# 秋招被挂春招仍然能投的公司 #
6977次浏览 100人参与
# 工作后,你落下了哪些病根 #
13781次浏览 191人参与
# 外包能不能当跳板? #
54125次浏览 256人参与
# mt对你说过最有启发的一句话 #
36818次浏览 442人参与
# 作业帮求职进展汇总 #
83315次浏览 547人参与
# 摸鱼被leader发现了怎么办 #
101924次浏览 647人参与
# 秋招特别不鸣谢 #
15951次浏览 181人参与
# 考研失败就一定是坏事吗? #
201393次浏览 1376人参与
# 选实习,你更看重哪方面? #
14388次浏览 220人参与
# 投格力的你,拿到offer了吗? #
152829次浏览 817人参与
# 一起聊美团 #
307069次浏览 1760人参与
# 京东美团大战,你怎么看? #
158153次浏览 861人参与
# 安克创新求职进展汇总 #
62382次浏览 541人参与
# 京东开奖 #
631575次浏览 3177人参与
# 第一次面试 #
1036580次浏览 13683人参与
# 今年秋招你收到了多少封邮件? #
18093次浏览 220人参与
# 毕业论文进行时 #
20932次浏览 132人参与
