摘要: dict是redis中比较重要的结构了,不像sds, adlist那样是底层的基础结构。涉及到的相关结构体: 内部提供的操作也比较丰富,目前看到的主要还是dictCreate, dictAdd, dictReplace, dictDelect这几个基本操作。 当dict的大小发生改变时会开始reha 阅读全文
posted @ 2017-10-28 23:16 flypighh 阅读(298) 评论(0) 推荐(0) 编辑
摘要: adlist是redis中自己实现的一个双向链表,同时也提供迭代器操作。先上结构 对于list结构,可以看做是链表的头节点。相应地,内部提供了插入、删除、(利用迭代器)复制的操作。 只是它的rotate操作有些不懂,按照字面意思,rotate应该是是链表上所有元素倒序,但是它的实现上只是把tail节 阅读全文
posted @ 2017-10-28 23:16 flypighh 阅读(218) 评论(0) 推荐(0) 编辑
摘要: sds(Simple Dynamic String): 它其实就是普通的字符串,只是在每个字符串的前面加了一个管理用的头部,相关类型结构的定义如下 从定义上看,5种定义对应了最大长度不同的字符串,定义这5种不同的类型可能是为了尽量减少sdshdr占用的空间。为了分sdshdr是哪一种类型,它在每一种 阅读全文
posted @ 2017-10-28 23:16 flypighh 阅读(527) 评论(1) 推荐(0) 编辑
摘要: redis是基于事件驱动的,相应的实现都在ae.c当中。 其实个人对于“事件驱动”的理解不是那么明显,只能说从它的实现上来看稍微有一些感觉: 先由外部模块注册感兴趣的事件以及callback,在poll返回时判断是否有相应模块感兴趣的事件,如果有的话就调用注册的callback ae.c里面使用如下 阅读全文
posted @ 2017-10-28 23:14 flypighh 阅读(901) 评论(0) 推荐(0) 编辑