栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis zset两种数所结构 跳表过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis zset两种数所结构 跳表过程

压缩列表

什么时候用压缩列表

跳表

什么是跳表

如下,如果要找27,正常情况是要先打  5  6  8  13 22 27 ,找六次。

如果用了一级索引,就是 5  8  22 27 ,相比原始数据,是间隔的比如不要5和8中间的6, 有了这一级索引,就只要找四次,

如果还觉得次数多,就在原来一级索引再加一级,也是间隔的,5和22中单的8不要, 

这样, 5  22 27,这样就只找三次了,同时在查找到27时,由二级跳到了一级,又跳到原始那一级,这样跳来跳去,就叫跳表。其实有点二叉树感觉,但比二叉树简单。二分法搞法。

插数据

删数据

Redis为什么不用b+树?MySQL为什么不用跳表?

1. 跳表范围查找比红黑树效率更高:

2.
这个问题在于 Redis是直接操作内存的并不需要磁盘io而MySQL需要去读取io,所以mysql要使用b+树的方式减少磁盘io,B+树的原理是 叶子节点存储数据,非叶子节点存储索引,每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度的降低磁盘的IO;因为数据在内存中读取耗费的时间是从磁盘的IO读取的百万分之一
而Redis是 内存中读取数据,不涉及IO,因此使用了跳表,跳表明显是更快更简单的方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040245.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号