查看其它 2 个回答youki2008的回答

youki2008youki2008系统架构师DDT

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

互联网服务 · 2020-04-27
浏览3333

回答者

youki2008
系统架构师DDT
擅长领域: 服务器云计算数据库

youki2008 最近回答过的问题

回答状态

  • 发布时间:2020-04-27
  • 关注会员:4 人
  • 回答浏览:3333
  • X社区推广