Redis 中,字典是基础结构。Redis 数据库数据、过期时间、哈希类型都是把字典作为底层结构。 字典的结构 哈希表 哈希表的实现代码在:dict.h/dictht ,Redis 的字典用哈希表的方式实现。 table 是一个哈希表数组,每个节点的实现在 dict ...
.字典相关的几个结构体 .动态扩容方法 int dictRehash dict d, int n 为了对dictht进行动态扩容,rehash方法将ht 中的值搬n个到ht 中, 分批次进行搬运,直到ht 中的值都搬到ht 上,再将ht 指针交给ht ,rehashidx ,完成此次rehash过程 .使用到的几个hash算法 针对int的hash函数 MurmurHash 算法 djb has ...
2018-07-26 12:32 0 4228 推荐指数:
Redis 中,字典是基础结构。Redis 数据库数据、过期时间、哈希类型都是把字典作为底层结构。 字典的结构 哈希表 哈希表的实现代码在:dict.h/dictht ,Redis 的字典用哈希表的方式实现。 table 是一个哈希表数组,每个节点的实现在 dict ...
这篇blog介绍dict的实现。 dict.c ...
dict的用途 dict是一种用于保存键值对的抽象数据结构,在redis中使用非常广泛,比如数据库、哈希结构的底层。 当执行下面这个命令: 以及使用哈希结构,如: 都会使用到dict作为底层数据结构的实现。 结构的定义 先看看字典以及相关数据结构体的定义: 字典 ...
1.初步认识跳跃表 图中所示,跳跃表与普通链表的区别在于,每一个节点可以有多个后置节点,图中是一个4层的跳跃表 传统意义的单链表是一个线性结构,向有序的链表中插入一个节点需要O(n)的时间 ...
2020的开年是比较艰难的,爆发了肺炎疫情,希望大家多注意安全,也希望疫情早日好转! 以3.2版本的源码为例,开始讲解,有时会贴出源码,进行说明,并会注明源码出处。 数据库 应该都知道默认redis会有16个库,是根据配置文件来的,可以通过select命令来切换数据库。那原理 ...
redis的一些介绍,麻烦阅读前面的几篇文章,想对redis的详细实现有所了解,强力推荐《redis设计与实现》(不仅仅从作者那儿学习到redis的实现,还有项目的管理、思想等,作者可能比你我都年轻欧)。如果阅读了上面的文档,激起你对redis的强力好奇,那么就只能阅读源码了。不管是在校学生 ...
一.SDS的简单介绍 SDS:简单动态字符串(simple dynamic string) 1)SDS是Redis默认的字符表示,比如包含字符串值的键值对都是在底层由SDS实现的 2)SDS用来保存数据库中的字符串值 3)SDS被用作缓冲区:比如AOF模块的AOF缓冲区,以及客户端 ...
哈希函数简介 哈希函数(hash function),又叫散列函数,哈希算法。散列函数把数据“压缩”成摘要,有的也叫”指纹“,它使数据量变小且数据格式大小也固定。 哈希函数将数据打乱混合,重新创建 ...