【红黑树】红黑树特征,哪里在用?为什么redis skiplist没有使用?

1 特征定义上两个图

 

 

2 红黑树使用 

   java 8 hashMap 和 concurrentHashMap 都在使用

3 为什么redis skiplist没有使用 ?

  看看作者怎么说吧?https://www.cl.cam.ac.uk/research/srg/netos/papers/2007-cpwl.pdf

  •    1 They are not very memory intensive,less memory intensive than btrees 内存不敏感
  •    2 A sorted set is often target of many ZRANGE or ZREVRANGE operations, that is, traversing the skip list as a linked list. With this operation the cache locality of skip lists is at least as good as with other kind of balanced trees.  range查询内存型和平衡树一样好,(有点像为啥用B+树而不用B树做Innodb存储引擎类似)
  •    3 They are simpler to implement, debug, and so forth. 实现简单易用,   skiplist的复杂度和红黑树一样,而且实现起来更简单
  •    4 在并发环境下skiplist有另外一个优势,红黑树在插入和删除的时候可能需要做一些rebalance(rotation)的操作,这样的操作可能会涉及到整个树的其他部分,而skiplist的操作显然更加局部性一些,需要关注的节点更少,因此在这样的情况下性能好一些。


 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页