• 2024-08-21数据结构之跳表SkipList、ConcurrentSkipListMap
    概述SkipList,跳表,跳跃表,在LevelDB和Lucene中都广为使用。跳表被广泛地运用到各种缓存实现当中,跳跃表使用概率均衡技术而不是使用强制性均衡,因此对于插入和删除结点比传统上的平衡树算法更为简洁高效。Skiplistsaredatastructuresthatuseprobabilisticbalancingrather
  • 2024-07-12Redis数据结构—跳跃表 skiplist 实现源码分析
    Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis的数据结构非常丰富,其中跳跃表(skiplist)是一种重要的数据结构,它被用来实现有序集合(sortedsets)。跳跃表是一种概率型数据结构,它通过多层链表来实现快速的查找操作。跳跃表的结构类似于多层索引,
  • 2024-05-19redis数据结构:RedisObject,SkipList,SortedSet
    1.RedisObject对象redis中任何KV都会被封装为RedisObject对象,也叫做Redis对象 2.SkipList跳表元素按照升序排列存储,是有序的双向链表节点可以有多个指针,并且跨度不同。指针个数根据节点数自动生成,1~32性能和红黑树;二分查找差不多。实现简单,但是空间复杂度高样例:1——2
  • 2024-03-23lua/c开发:c-object for lua
    c+lua开发中常见的实现:c库实现功能,供lua调用;比如排行榜模块(跳表),实现方案可为:c库实现跳表(skiplist)核心逻辑,提供接口供lua层中操作使用;那么c库显然有以下的实现(伪码,演示用)://skiplistcorestructskiplist{//...};structskiplist*skiplist_create();voidskipli
  • 2024-02-27redis自学(6)SkipList
    SkipListSkipList(跳表)首先是链表,但与传统链表相比有几点差异:  元素按照升序排列存储  节点可能包含多个指针,指针跨度不同(最多允许32级指针,跨度成倍数递增)    SkipList的特点:  跳跃表是一个双向链表,每个节点都包含score和ele值  节点按照score值排序,sc
  • 2023-12-14Redis数据结构5:REDIS_SKIPLIST
    REDIS_SKIPLISTskipList,即:跳表,或者叫跳跃表。skiplist的优势是能支持平均O(logN)复杂度的节点查找。用一句话来说:skiplist就是一个有着索引的list。编码结构简单理解简单来说,skipList有多层“索引”以加快查找速度:其中L1、L2和L3都是一个list。当查找8时,从L3查找到5,再从L
  • 2023-09-02redis常用数据类型(转)
    转载:https://blog.csdn.net/u014453898/article/details/112292028redis有5种常用数据类型,string,list,set,zset,hash一、应用string:缓存,限流,计数器,分布式锁,分布式sessionhash:存储用户信息,用户主页访问量,组合查询list:微博关注人时间轴列表,简单队列set:赞,踩,标
  • 2023-03-25数据类型-Sorted Set(待补充)
    Redis为什么使用skiplist而不是平衡树Redis中的skiplist主要是为了实现sortedset相关的功能,红黑树当然也能实现其功能,为什么redis作者当初在实现的时候用了skiplist而不
  • 2023-01-28【godis】skiplist
    skiplist前言:在看代码时看到ZSKIPLIST_MAXLEVEL=32,当时并不了解ZSKIPLIST_P的作用,想着用2分法不应该层数是64吗?书上和他人的代码都是基于5.0的(5.0上是64),于
  • 2022-12-17 redis底层数据结构之跳表(skiplist)
    跳表(跳跃表,skiplist)跳跃表(skiplist)是用于有序元素序列快速搜索查找的数据结构,跳表是一个随机化的数据结构,实质是一种可以进行二分查找的、具有层次结构的有序链表
  • 2022-10-31Go语言对比跳表和Map
    最近学习一个GO语言写的开源项目Lotusdb,https://github.com/flower-corp/lotusdb,其中使用跳表作为数据结构来缓存Key-Value,产生了疑惑为什么不直接用Map而要自己写个跳