本章讲述一下nginx中红黑树的实现。关于具体实现原理,我们有其他的章节进行了详细的说明。这里不再细述。
1. 相关函数声明
上述分别是实现一个节点的左旋转与右旋转。
2. 函数ngx_rbtree_insert()
本函数用于红黑树节点的插入,其实包含两个部分:
3. 函数ngx_rbtree_insert_value()
插入一个节点到红黑树,注意这里只完成了第一个阶段(插入),而后续的调整并未完成。本函数一般作为ngx_rbtree_s
的insert指针来使用。
4. 函数ngx_rbtree_insert_timer_value()
nginx使用红黑树来存储众多的定时器,本函数主要是用于定时器的插入。
5. 函数ngx_rbtree_delete()
本函数主要用于红黑树节点的删除,即将node节点从红黑树中移除,注意函数中并未释放node节点本身的存储空间。
6. 函数ngx_rbtree_left_rotate()
节点左旋转。
7. 函数ngx_rbtree_right_rotate()
节点右旋转。
[参看]