下面是跳跃表的基本原理,REDIS的实现大致相同 跳跃表的一个特点是,插入NODE是通过随机的方式来决定level的,比较奇特 下面是skipList的一个介绍,转载来的,源地址:http://kenby.iteye.com/blog/1187303,为防止源地址丢失,故拷贝一份放在这里,望作者原谅 ...
分类:
其他好文 时间:
2017-07-04 20:21:36
阅读次数:
160
本文摘抄于《Redis内部数据结构详解-skiplist》 一、skiplist的由来 skiplist,顾名思义,首先它是一个list。实际上,它是在有序链表的基础上发展起来的。 我们先来看一个有序链表,如下图(最左侧的灰色节点表示一个空的头结点): 在这样一个链表中,如果我们要查找某个数据,那么 ...
分类:
其他好文 时间:
2017-06-26 12:43:49
阅读次数:
190
阻塞队列(BlockingQueue) 当试图向队列添加元素而队列已满,或是想从队列移除元素而队列为空的时候,阻塞队列导致线程阻塞,阻塞队列接口定义如下,他继承Queue接口: public interface BlockingQueue extends Queue { /** * 添加一个元素,如... ...
分类:
编程语言 时间:
2017-04-25 23:38:19
阅读次数:
364
转自:https://www.ibm.com/developerworks/cn/java/j-lo-concurrent/ 非阻塞算法在 Java 中的应用越来越广泛 , ConcurrentLinkedQueue 是 java. concurrent 包中基于非阻塞算法实现的并发容器的典范。通过 ...
分类:
编程语言 时间:
2017-03-13 23:30:38
阅读次数:
271
跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。Redis使用跳跃表作为有序结合键的底层实现之一,如果一个有序集合..
分类:
其他好文 时间:
2017-02-10 18:49:36
阅读次数:
259
版权声明:本文由宋增宽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/222 来源:腾云阁 https://www.qcloud.com/community 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发 ...
分类:
其他好文 时间:
2016-12-11 22:55:20
阅读次数:
243
为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树, 还要参考网上的代码,相当 ...
分类:
其他好文 时间:
2016-09-19 17:58:15
阅读次数:
162
NBA这赛季结束,勇士可惜啊,谁能想到没拿到冠军,库昊也没成为真正的老大,lbl一战封神,所有口水留言都变成羡慕嫉妒恨,哎,我库啊,还是还是看书吧。
ConcurrentSkipListMap说实话,之前还真没注意过,还是看JUC才看到,利用skiplist跳表结构来实现一种有序的map,之前看到的map都是无序。在学习前还是要好好了解下什么是skiplist跳表,的确很不错,利用空间换时间,复...
分类:
其他好文 时间:
2016-06-23 13:00:25
阅读次数:
266
这周事情比较多,原本计划每周写两篇文章的看来是完不成了,今天为大家带来有序集合zset的源码分析。zset的源码主要涉及redis.h和t_zset.c两个文件,我们先来介绍一下zset底层用到的skiplist跳跃表在Redis中的实现,然后重点讲讲zset的存储结构和范围操作的实现。...
分类:
其他好文 时间:
2016-04-29 18:57:18
阅读次数:
282
这周事情比较多,原本计划每周写两篇文章的看来是完不成了,今天为大家带来有序集合zset的源码分析。zset的源码主要涉及redis.h和t_zset.c两个文件,我们先来介绍一下zset底层用到的skiplist跳跃表在Redis中的实现,然后重点讲讲zset的存储结构和范围操作的实现。...
分类:
其他好文 时间:
2016-04-26 21:06:05
阅读次数:
223