关注
笔记: redis的Hash数据结构结构:底层数据结构为字典(dict),每个dict记录一下数据的必要信息外,包含2个字典哈希表(dict hash table),一个默认存放数据,一个用于扩容时的中间表(类似于 GC中标记-复制法中的空闲内存作用),dictht中保存了数据的必要信息+dictEntry数组,这里的dictEntry数组个人认为近似于java中的hashmap结构,以数组+链表的形式存储了k-v对; 渐进式扩容:数据默认存放在ht[0]中,一旦触发了扩容或收缩,则将dictht[1]作为操作的中间表,具体如下: 1、为ht[1]分配空间,扩容时,大小为第一个>=(h[0]中被使用空间大小x的2倍)的偶数值(难道2x本身不就是最接近的嘛...在线疑惑)。收缩时,大小为第一个>=(h[0]中被使用空间大小x)的偶数值; 2、对ht[0]中每个kv对重新rehashcode并迁移到ht[1](渐进式rehash模式下,并不是一次性完成,而是将每个kv对的转移捆绑到客户端的增删改查指令中); 3、迁移完成,清空ht[0],设置ht[1]为默认数据存储表; 4、上述渐进式rehash过程中,如果有新插入的数据,则统一进入ht[1](即提前将ht[1]设置为默认数据存储表),增删改差等操作会在两个表上进行,先查旧表(0)再查新表(1)
点赞
相关推荐
程序员花海_:实习写的看起来像项目了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客2025仙途报告 #
16868次浏览 283人参与
# 元旦假期你打算怎么过 #
1458次浏览 48人参与
# 一人说一家双休的公司 #
39次浏览 1人参与
# 我们是不是被“优绩主义”绑架了? #
2841次浏览 118人参与
# 对2025年忏悔 #
36次浏览 1人参与
# 实习没人带,苟住还是跑路? #
912次浏览 28人参与
# 找工作,行业重要还是岗位重要? #
87901次浏览 1761人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105217次浏览 1647人参与
# 今年你最想重开的一场面试是? #
14677次浏览 155人参与
# 没有家庭托举的我是怎么找工作的 #
32051次浏览 263人参与
# 礼物开箱Plog #
3546次浏览 106人参与
# 秋招落幕,你是He or Be #
23866次浏览 403人参与
# 一人说一个提前实习的好处 #
25697次浏览 333人参与
# 你面试体验感最差/最好的公司 #
30873次浏览 507人参与
# 实习要如何选择和准备? #
130554次浏览 1514人参与
# 机械人晒出你的简历 #
148667次浏览 886人参与
# 华为池子有多大 #
154253次浏览 865人参与
# 工作中听到最受打击的一句话 #
14151次浏览 185人参与
# 你有哪些缓解焦虑的方法? #
44683次浏览 869人参与
# 设计人的面试记录 #
176958次浏览 1575人参与