关注
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字节,就会后面的同样需要更新,依此类推,**就会导致连锁更新问题**。但是看书上给出的答案就发现连锁更新不会造成很严重的性能问题:**因为多个连续的临界表项才会可能被引发,对于少量节点的更新并不会影响性能**。
查看原帖
点赞 评论
相关推荐
07-09 11:20
北京信息科技大学 机械结构工程师 点赞 评论 收藏
分享
06-18 15:30
吉林化工学院 Java 程序员小白条:主要没亮点,项目也是网上的,平平无奇,那只能海投了,奖项总得有一些,然后就是现在最好是前后端都会,自己能做项目并且运维的,要么找星球项目改改,要么找个开源项目改改,自己能拓展功能才是主要的,跟做效率很低很低
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 如何提高实习转正率? #
137次浏览 4人参与
# 如果可以,你希望哪个公司来捞你 #
99390次浏览 421人参与
# leader认为你工作不认真怎么办 #
30124次浏览 134人参与
# 国企是理工四大天坑的最好选择吗 #
13328次浏览 94人参与
# 我的国央企投递进展 #
46147次浏览 288人参与
# 五一之后,实习真的很难找吗? #
78096次浏览 514人参与
# 如果公司给你放一天假,你会怎么度过? #
16677次浏览 128人参与
# 机械人,你被简历秒挂的企业有哪些? #
42604次浏览 280人参与
# 总结:哪家公司面试体验感最差 #
60766次浏览 276人参与
# 三一重工求职进展汇总 #
14643次浏览 67人参与
# 你遇到过哪些神仙同事 #
99876次浏览 720人参与
# 找工作时的取与舍 #
80199次浏览 567人参与
# 通信/硬件公司求职体验 #
123985次浏览 865人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
245648次浏览 1788人参与
# 工作一周年分享 #
30929次浏览 184人参与
# 在国企工作的人,躺平了吗? #
343605次浏览 3881人参与
# 我和mentor的爱恨情仇 #
58296次浏览 350人参与
# 技术岗笔试题求解 #
78169次浏览 1012人参与
# OPPO求职进展汇总 #
662449次浏览 5037人参与
# 你找工作的时候用AI吗? #
29142次浏览 356人参与