redis为什么采用跳表而不是红黑树

  • 在做范围查找的时候,平衡树比skiplist操作要复杂。
  • 平衡树需要以中序遍历的顺序继续寻找其它不超过大值的节点。
  • skiplist进行范围查找非常简单,只需要在找到小值之后,对第1层链表进行若干步的遍历就可以实现。
  • 平衡树的插入和删除操作可能引发子树的调整,逻辑复杂,而skiplist的插入和删除只需要修改相邻节点的指针,操作简单又快速。
  • skiplist需要更少的指针内存。平均每个节点包含1.33个指针,比平衡树更有优势。
    从算法实现难度上来比较,skiplist比平衡树要简单得多。

猜你喜欢

转载自blog.csdn.net/gamekit/article/details/104734734