关注
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字节,就会后面的同样需要更新,依此类推,**就会导致连锁更新问题**。但是看书上给出的答案就发现连锁更新不会造成很严重的性能问题:**因为多个连续的临界表项才会可能被引发,对于少量节点的更新并不会影响性能**。
查看原帖
点赞 评论
相关推荐
03-02 08:18
集美大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 简历上如何体现你的“AI”能力? #
15301次浏览 337人参与
# 哪些AI项目值得做? #
25449次浏览 621人参与
# 华泰星战营,提前锁定校招offer #
13334次浏览 389人参与
# 找不到大厂实习可以去小厂吗? #
20679次浏览 228人参与
# 你总挂在第__面? #
10883次浏览 120人参与
# 没有面试的日子里,你在做什么 #
13588次浏览 363人参与
# 实习时最怕听到的一句话 #
22725次浏览 195人参与
# 选择和努力,哪个更重要? #
207246次浏览 1551人参与
# 你想吐槽公司的哪些规定 #
47585次浏览 237人参与
# 你简历上最心虚的一句话 #
21284次浏览 233人参与
# 这份实习,有没有动摇过你的职业方向? #
51455次浏览 284人参与
# 你知道最慷慨和最抠的公司分别是 #
10648次浏览 86人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
200309次浏览 1186人参与
# 正在春招的你,也参与了去年秋招吗? #
398464次浏览 2741人参与
# 京东笔试 #
174140次浏览 936人参与
# 秋招笔试记录 #
399858次浏览 2221人参与
# 机械人还在等华为开奖吗? #
335145次浏览 1638人参与
# 网易笔试 #
170567次浏览 811人参与
# 2022毕业的你对23届的寄语 #
68215次浏览 578人参与
# 90后北漂现状 #
39149次浏览 225人参与
# 机械人,说说你的烦心事 #
144798次浏览 1153人参与

