摘要: redis使用sds代替char *字符串,其定义如下:typedef char *sds;struct sdshdr { unsigned int len; unsigned int free; char buf[];};sds指向了char 字符串sdshdr是字符串头结构比较... 阅读全文
posted @ 2015-10-05 16:23 stonehat 阅读(428) 评论(0) 推荐(0) 编辑
摘要: Dict和Java中的HashMap很相似,都是数组开链法解决冲突。但是Redis为了高性能, 有很多比较微妙的方法,例如 数组的大小总是2的倍数,初始大小是4。rehash并不是一次就执行完,而是分多次执行。每次执行一部分。其中rehashidx表示现在hash到哪一个桶啦,-1表示现在并没有re... 阅读全文
posted @ 2015-10-05 15:19 stonehat 阅读(1333) 评论(0) 推荐(0) 编辑
摘要: Redis源码阅读-链表部分-链表数据结构在Adlist.h Adlist.cRedis的链表是双向链表,内部定义了一个迭代器。双向链表的函数主要是链表创建、删除、节点插入、头插入、尾插入、第N个节点、节点迭代遍历、链表复制、链表rotate、节点删除typedef struct listNo... 阅读全文
posted @ 2015-10-05 14:01 stonehat 阅读(408) 评论(0) 推荐(0) 编辑