关注
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-19 01:17
大连东软信息学院 人工智能
在打卡的大老虎很想潜...:你在找实习,没啥实习经历,技术栈放前面,项目多就分两页写,太紧凑了,项目你最多写两个,讲清楚就行,项目背景。用到的技术栈、亮点、难点如何解决,人工智能进面太难了,需求少。你可以加最新大模型的东西 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职进度条 #
990312次浏览 6566人参与
# 总结:哪家公司最喜欢泡池子 #
168267次浏览 576人参与
# 厦门银行科技岗值不值得投 #
19097次浏览 423人参与
# 从投递到OC,你用了多久 #
1957次浏览 19人参与
# 实习教会我的事 #
73712次浏览 508人参与
# 一人一道大厂面试题 #
127525次浏览 1314人参与
# 哪些公司一直卡在简历筛选 #
107027次浏览 369人参与
# 我想象的实习vs现实的实习 #
333034次浏览 2298人参与
# Agent面试会问什么? #
40810次浏览 1472人参与
# 拿到offer之后,可以做些什么 #
105400次浏览 512人参与
# 米哈游笔试 #
656459次浏览 1160人参与
# 一人分享一个skill #
10644次浏览 248人参与
# 春招至今,你收到几个面试了? #
114297次浏览 1388人参与
# 说说你知道的学历厂 #
402745次浏览 1439人参与
# 有深度的简历长什么样? #
54050次浏览 731人参与
# 上班以后,你还有哪些坚持的爱好? #
30349次浏览 303人参与
# 找工作,行业重要还是岗位重要? #
102280次浏览 1849人参与
# 今年你最想重开的一场面试是? #
103881次浏览 357人参与
# 大厂无回复,继续等待还是奔赴小厂 #
349986次浏览 2005人参与
# 米哈游工作体验 #
29993次浏览 145人参与
# 我是XXX,请攻击我最薄弱的地方 #
73727次浏览 503人参与
查看4道真题和解析