面试官:你看过Redis数据结构底层实现吗?
发布时间:2019-06-23 09:36:26 所属栏目:编程 来源:奔头哥
导读:口试中,redis也是很受口试官亲睐的一部门。我向在这里讲的是redis的底层数据布局,而不是你领略的五大数据布局。你有没有想过redis底层是奈何的数据布局呢,他们和我们java中的HashMap、List、等行使的数据布局有什么区别呢。 1. 字符串处理赏罚(string) 我们
Hash表节点:
字典:
可以看出:
下面我们讲一下它的rehash优化。 3.2 rehash 当哈希表的键对泰国可能太少,就必要对哈希表的巨细举办调解,redis是怎样调解的呢?
3.3 渐进式rehash 我们在3.2中看到,redis处理赏罚rehash的流程,可是更细一点的讲,它怎样举办数据迁的呢? 这就涉及到了渐进式rehash,redis思量到大量数据迁徙带来的cpu忙碌(也许导致一段时刻内遏制处事),以是回收了渐进式rehash的方案。步调如下:
它的甜头:回收分而治之的头脑,将复杂的迁徙事变量分别到每一次CURD中,停止了处事忙碌。 4. 跳跃表 这个数据布局是我口试中见过最多的,它着实出格简朴。学过的人也许都知道,它僻静衡树机能很相似,但为什么不消均衡树而用skipList呢? 4.1 skipList & AVL 之间的选择
可以看到,skipList中的元素是有序的,以是跳跃表在redis顶用在有序荟萃键、集群节点内部数据布局 4.2 源码 跳跃表节点:
(编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |