数组:
链表:
跳表:《redis里用的最多》
总结:
为啥 redis 使用跳表(skiplist)而不是使用 red-black?
1 skiplist的复杂度和红黑树一样,而且实现起来更简单。
2 在并发环境下skiplist有另外一个优势,红黑树在插入和删除的时候可能需要做一些rebalance的操作,这样的操作可能会涉及到整个树的其他部分,而skiplist的操作显然更加局部性一些,锁需要盯住的节点更少,因此在这样的情况下性能好一些。
参考:https://redisbook.readthedocs.io/en/latest/internal-datastruct/skiplist.html