今天为大家带来Redis中zipmap数据结构的分析,该结构定义在zipmap.h和zipmap.c文件中。我把zipmap称作“压缩字典”(不知道这样称呼正不正确)是因为zipmap利用字符串实现了一个简单的hash_table结构,又通过固定的字节表示节省空间。zipmap和前面介绍的ziplist结构十分类似,我们可以对比地进行学习。...
分类:
其他好文 时间:
2016-04-10 14:29:25
阅读次数:
135
Redis中,处理网络IO时,采用的是事件驱动机制。但它没有使用libevent或者libev这样的库,而是自己实现了一个非常简单明了的事件驱动库ae_event,主要代码仅仅400行左右。
没有选择libevent或libev的原因大概在于,这些库为了迎合通用性造成代码庞大,而且其中的很多功能,比如监控子进程,复杂的定时器等,这些都不是Redis所需要的。...
分类:
其他好文 时间:
2016-04-03 11:52:58
阅读次数:
244
今天我们来讲讲Redis中的哈希表。哈希表在C++中对应的是map数据结构,但在Redis中称作dict(字典)。Redis只是用了几个简单的结构体和几种常见的哈希算法就实现了一个简单的类似高级语言中的map结构。下面我们来具体分析一下dict的实现。...
分类:
其他好文 时间:
2016-03-31 11:05:31
阅读次数:
340
获取redis源码包 #wget http://download.redis.io/releases/redis-stable.tar.gz 解压缩 #tar xf redis-stable.tar.gz #cd redis-stable 开始编译 #make -j 4 #cd src 安装 #ma
分类:
Web程序 时间:
2016-03-06 20:40:36
阅读次数:
150
1. dict的特点 字典dict采用hash表作为底层的存储结构。 1. hash表的长度保持为2的N次方,最大长度为LONG_MAX。 2. hash表采用链式法来解决hash值冲突。 3. dict数据结构中保存了两个hash表指针,用于实现rehash的过程。 4. 为了防止大数据量情况下r
分类:
其他好文 时间:
2016-02-13 13:28:15
阅读次数:
425
1. Redis中散列函数的实现: Redis针对整数key和字符串key,采用了不同的散列函数 对于整数key,redis使用了 Thomas Wang的 32 bit Mix Function,实现了dict.c/dictIntHashFunction函数: 1 /* Thomas Wang's
分类:
其他好文 时间:
2016-02-05 22:25:38
阅读次数:
593
本来一直想好好读下redis源码。可是每次读了一点就不读了。 主要是没坚持每天都读。 隔几天看。就忘记前面的流程。就越来越不想看了。 很是蛋疼。这个还是要坚持读完的。打算这段时间都源码的时候。都大概用代码流程图纪录下自己看到的内容。 这样自己梳理起来也比较清晰。 还有觉得自己看源码有点问题。 总是....
分类:
其他好文 时间:
2016-01-20 09:52:19
阅读次数:
176
计划在CSDN学院推出系列视频课程《源码分析教程5部曲》
源码分析教程5部曲之1——漫游C语言
源码分析教程5部曲之2——C标准库概览
源码分析教程5部曲之3——libevent源码分析
源码分析教程5部曲之4——memcached源码分析
源码分析教程5部曲之5——redis源码分析...
分类:
其他好文 时间:
2016-01-14 12:34:32
阅读次数:
152
进入官网http://redis.io/download下载需要Redis版本建立Redis的安装目录[root@localhostapplication]#mkdir/application/redis-3.23.解压下载的Redis源码包[root@localhost~]#tar-zxvfredis-3.2-rc1.tar.gz4.安装Redis[root@localhostredis-3.2-rc1]#cdredis-3.2-rc1
[root@lo..
分类:
其他好文 时间:
2016-01-11 06:57:58
阅读次数:
229