首页 > 数据库 >Redis的有序集合Zset为啥用跳表不用二叉树

Redis的有序集合Zset为啥用跳表不用二叉树

时间:2023-07-26 10:33:24浏览次数:58  
标签:Zset 复杂度 Redis 查找 二叉树 logN 跳表 范围

跳表和红黑树查找的时间复杂度都是logN,插入删除也是logN。范围查找貌似也都是 O(k + log n),其中 n 是树中节点的数量,k 是满足范围条件的节点数量。但是实现起来跳表要简单很多。
1.zset有个很核心的操作叫范围查找,我们要查找某个范围区间的元素。跳表可以做到logN时间复杂度内的快速查找,找到区间的起点,往后遍历就可以了。红黑树范围查找的效率没跳表高。
2.跳表的实现比红黑树简单,容易实现。可以有效的控制跳表的索引层级,来控制内存的消耗。。
转载:https://www.bilibili.com/video/BV1kh411x7Jc/?spm_id_from=333.337.search-card.all.click&vd_source=46d50b5d646b50dcb2a208d3946b1598

标签:Zset,复杂度,Redis,查找,二叉树,logN,跳表,范围
From: https://www.cnblogs.com/chenyi502/p/17581770.html

相关文章

  • 剑指offer--二叉树
    第3题:二叉搜索树的第k个节点描述给定一棵结点数为n的二叉搜索树,请找出其中的第k小的TreeNode结点值。返回第k小的节点值即可不能查找的情况,如二叉树为空,则返回-1,或者k大于n等等,也返回-1保证n个节点的值不一样思路递归中序遍历二叉搜索树:左子树的元素都小于根节点,右......
  • cookie+session(这里使用redistemplate代替)实现单点登录流程
     user发起资源请求(带上回调的路径方便回调),通过判断是否浏览器的cookie中是否存在登录过的痕迹,比如有人登了,然后存了一个cookie到浏览器如果拿到了cookie是有东西的,则带上这个cookie的内容返回给client,如果没有东西,则继续登录,向session中存入userInfo,并给浏览器设置cookie......
  • redis 取出指定集合
    Redis取出指定集合Redis是一种高性能的键值存储数据库,它支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。在Redis中,集合是一种无序且唯一的数据结构,它可以存储多个元素。本文将介绍如何在Redis中取出指定集合的元素,并提供相关代码示例。Redis集合Redis集合是一个无序......
  • redis 切换db0到db1命令
    Redis切换DB0到DB1命令实现步骤作为一名经验丰富的开发者,你需要教导一位刚入行的小白如何实现Redis的DB0切换到DB1命令。下面是整个流程的步骤展示:步骤操作1连接Redis服务器2切换到DB03选择DB14验证切换成功接下来,让我们逐步教会小白每......
  • redis 启动 停止
    Redis启动停止流程1.确认Redis安装在开始之前,确保已经正确安装了Redis数据库。可以通过以下命令检查是否已安装:redis-server--version如果没有安装,可以参考Redis官方文档进行安装。2.启动RedisRedis启动步骤如下:步骤命令代码示例1.打开终端或命令行......
  • redis 内存是否满了 怎么看
    Redis内存是否满了怎么看在使用Redis时,我们经常会面临一个问题,就是如何判断Redis的内存是否已经满了。因为Redis是基于内存的数据库,当内存不足时,可能会导致系统变慢甚至崩溃。因此及时监控Redis的内存使用情况非常重要。如何监控Redis的内存使用情况Redis提供了一些命令和配置选......
  • redis 模糊查询value
    Redis模糊查询value实现指南介绍在开发中,我们经常需要对存储在Redis中的数据进行查询操作。Redis是一个基于键值对的内存数据库,提供了丰富的数据结构和功能。本文将教会你如何使用Redis实现模糊查询value的功能。流程概述下面是整个流程的概述,我们将在后续详细解释每......
  • Redis循环慢接口优化
    原慢接口List<String>keys=newArrayList<>(Arrays.asList("1","2","3","4","5","6","7","8","9","10","11"));List<String>......
  • 封装一个Redis服务组件
    结构说明 ServiceCollectionExtensions类1usingcom.project.Redis.Common;2usingMicrosoft.Extensions.Configuration;3usingMicrosoft.Extensions.DependencyInjection;4usingSystem;56namespacecom.project.Redis7{8publicstaticclass......
  • springsession 配置redis集群
    SpringSession配置Redis集群教程1.流程概述在本教程中,我们将详细介绍如何使用SpringSession来配置Redis集群。整个流程可以总结为以下几个步骤:添加SpringSession和Redis依赖配置Redis集群连接信息配置SpringSession使用Redis集群测试SpringSession与Redis集群的连接......