关注
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字节,就会后面的同样需要更新,依此类推,**就会导致连锁更新问题**。但是看书上给出的答案就发现连锁更新不会造成很严重的性能问题:**因为多个连续的临界表项才会可能被引发,对于少量节点的更新并不会影响性能**。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 职场中那些令人叹为观止的八卦 #
7816次浏览 108人参与
# 秋招吐槽大会 #
37211次浏览 335人参与
# 腾讯音乐秋招 #
421596次浏览 4736人参与
# 我的职场社死时刻 #
7255次浏览 85人参与
# 你找工作想离家近 or 离家远? #
6259次浏览 98人参与
# 月薪多少能在一线城市生存 #
91030次浏览 619人参与
# 小红书开奖了 #
12700次浏览 85人参与
# 那些年,我收到的‘奇葩’回复 #
4097次浏览 46人参与
# 哪些公司开始补录了 #
6501次浏览 97人参与
# 你秋招最后悔的选择 #
6474次浏览 59人参与
# 秋招你经历过哪些无语的事 #
4418次浏览 54人参与
# XX请雇我工作 #
5554次浏览 66人参与
# 职场中对你有帮助的书 #
22995次浏览 213人参与
# 中科曙光工作体验 #
4904次浏览 23人参与
# 如何拒绝/反向PUA #
82151次浏览 368人参与
# 交通银行工作体验 #
20615次浏览 69人参与
# 你父母给过你哪些不靠谱的职场建议? #
6659次浏览 89人参与
# 假如你的老板掉河里,你的工作能为他做什么 #
39420次浏览 401人参与
# 虾皮开奖 #
50366次浏览 245人参与
# 京东工作体验 #
21627次浏览 121人参与
# 你觉得机械有必要实习吗 #
66385次浏览 481人参与
# 你最满意的offer薪资是哪家公司? #
51910次浏览 263人参与