关注
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字节,就会后面的同样需要更新,依此类推,**就会导致连锁更新问题**。但是看书上给出的答案就发现连锁更新不会造成很严重的性能问题:**因为多个连续的临界表项才会可能被引发,对于少量节点的更新并不会影响性能**。
查看原帖
点赞 评论
相关推荐
查看3道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 逆天老师,逆天领导,被我回怼一句话后破防了,要把我开除了5413
- 2... 作为一个老登,最烦应届生问的问题之一4757
- 3... 27双非ue游戏客户端大失败经历4386
- 4... 各位都是怎么出去实习的3616
- 5... 理性讨论,卷实习算不算工贼行为?3307
- 6... 三段大厂,说下我见过的最低学历3140
- 7... 双非想拿腾讯offer,会被卡学历吗?2990
- 8... 26博士求职竟然也难2854
- 9... 【5.21更新】26春招毁约毁意向裁员黑名单公司,为找工作尽一份绵薄之力!2573
- 10... 我的兄弟没找到工作,要我先接济他1653
正在热议
更多
# 如何成为1个AI工程师? #
6595次浏览 312人参与
# 秋招拿一个offer可以躺平吗 #
277637次浏览 1412人参与
# 26届春招投递记录 #
40592次浏览 351人参与
# 一人分享一个skill #
34694次浏览 317人参与
# 27届实习投递记录 #
127461次浏览 1437人参与
# 机械人求职现状 #
44003次浏览 329人参与
# 你觉得第一学历对求职有影响吗? #
276651次浏览 1495人参与
# 我在大厂见过的最低学历 #
6213次浏览 69人参与
# 产品2023笔面经 #
89191次浏览 472人参与
# 第一次找实习,我建议__ #
87430次浏览 875人参与
# 秋招白月光 #
819297次浏览 5695人参与
# 虹软科技求职进展汇总 #
18491次浏览 141人参与
# 想给25届机械人的秋招建议 #
54303次浏览 264人参与
# 上班苦还是上学苦呢? #
350596次浏览 2088人参与
# 给26届的秋招建议 #
391116次浏览 4407人参与
# 要毕业了,再不说就来不及了 #
11362次浏览 172人参与
# HR面都在聊什么? #
48545次浏览 333人参与
# 机械人你觉得今年行情怎么样? #
9815次浏览 100人参与
# 找工作中的意难平 #
1106137次浏览 6532人参与
# 运营来爆料 #
105954次浏览 519人参与
