Redis实现为双链表结构, 列表键的底层实现之一就是链表, 发布与订阅, 慢查询, 监视器等功能都用到了链表. Redis本身也使用链表维持多个客户端. 节点定义, 位于 adlist.h/listNode 链表结构定义, 位于adlist.h/list Redis链表特性总结 : ...
分类:
其他好文 时间:
2017-04-14 23:51:42
阅读次数:
276
错误描述安装Redis2.8.18时报错:zmalloc.h:50:31:error:jemalloc/jemalloc.h:Nosuchfileordirectoryzmalloc.h:55:2:error:#error"Newerversionofjemallocrequired"make[1]:***[adlist.o]Error1make[1]:Leavingdirectory`/data0/src/redis-2.6.2/src‘make:***[all]Error2原因分..
分类:
其他好文 时间:
2016-12-30 22:15:07
阅读次数:
225
最近,我想通过redis的源码来学习redis。虽然平时工作中用得不多,不过对redis还是比较感兴趣的,毕竟它的性能是不错的。redis是一个开源的项目,我们可以通过源代码去了解redis。我后面会通过自己的学习,写一些关于redis源码的帖子。帖子的主要内容是分析代码设计,而并不会..
分类:
其他好文 时间:
2016-05-08 01:18:23
阅读次数:
241
Redis源码阅读-链表部分-链表数据结构在Adlist.h Adlist.cRedis的链表是双向链表,内部定义了一个迭代器。typedef struct listNode { struct listNode *prev; struct listNode *next; vo...
分类:
其他好文 时间:
2015-10-05 14:21:44
阅读次数:
192
0. 前言 Redis 中的链表是以通用链表的形式实现的,而对于链表的用途来说,主要的功能就是增删改查,所以对于查找来说,redis其提供了一个match函数指针,用户负责实现其具体的匹配操作,从而实现通用化。 涉及的文件:adlist.h/adlist.c1. 数据结构typedef stru.....
分类:
其他好文 时间:
2015-08-16 16:35:21
阅读次数:
124
Redis数据类型之链表链表的实现redis的列表的底层实现就是一个双链表,源码在src下的adlist.h和adlist.c链表的结点数据结构 /*
* 双端链表节点
*/
typedef struct listNode { // 前置节点
struct listNode *prev; // 后置节点
s...
分类:
其他好文 时间:
2015-07-30 23:21:24
阅读次数:
112
Redis的Adlist实现了数据结构中的双端链表,整个结构例如以下:链表节点定义:typedef struct listNode { struct listNode *prev; struct listNode *next; void *value;} listNode;链表定义...
分类:
其他好文 时间:
2015-07-30 22:53:57
阅读次数:
126
错误描述
安装Redis 2.8.18时报错:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Erro...
分类:
其他好文 时间:
2015-05-22 13:36:13
阅读次数:
592
ziplist和之前我解析过的adlist列表名字看上去的很像,但是作用却完全不同。之前的adlist主要针对的是普通的数据链表操作。而今天的ziplist指的是压缩链表,为什么叫压缩链表呢,因为链表中我们一般常用pre,next来指明当前的结点的前一个指针或当前的结点的下一个指针,这其实是在一定程度上占据了比较多的内存空间,ziplist采用了长度的表示方法,整个ziplist其实是超级长的字符...
分类:
其他好文 时间:
2014-10-11 19:10:25
阅读次数:
130
昨天分析完adlist的Redis代码,今天马上马不停蹄的继续学习Redis代码中的哈希部分的结构学习,不过在这里他不叫什么hashMap,而是叫dict,而且是一种全新设计的一种哈希结构,他只是通过几个简单的结构体,再搭配上一些比较常见的哈希算法,就实现了类似高级语言中HashMap的作用了。也让我见识了一些哈希算法的实现,比如dbj hash的算法实现,俗称times33,算法,就是不停的*3...
分类:
其他好文 时间:
2014-10-08 11:37:35
阅读次数:
343