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