网站维护入门教程,餐饮小程序开发,西安企业名录,无锡专业网站建设公司一 zset的作用以及结构
1.1 zset作用
redis的zset是一个有序的集合#xff0c;和普通集合set非常相似#xff0c;是一个没有重复元素的字符串集合。常用作排行榜等功能#xff0c;以用户 id 为 value#xff0c;关注时间或者分数作为 score 进行排序。
1.2 zset的底层结…一 zset的作用以及结构
1.1 zset作用
redis的zset是一个有序的集合和普通集合set非常相似是一个没有重复元素的字符串集合。常用作排行榜等功能以用户 id 为 value关注时间或者分数作为 score 进行排序。
1.2 zset的底层结构
1.zset是一个特别的数据结构一方面它等价于 Java 的数据结构 MapString, Double可以给每一个元素 value 赋予一个权重 score另一方面它又类似于 TreeSet内部的元素会按照权重 score 进行排序可以得到每个元素的名次还可以通过 score 的范围来获取元素的列表。
2.zset 底层使用了两个数据结构
hashhash 的作用就是关联元素 value 和权重 score保障元素 value 的唯一性可以通过元素 value 找到相应的 score 值。 跳跃表跳跃表的目的在于给元素 value 排序根据 score 的范围获取元素列表。 https://blog.51cto.com/u_14191/6345603
ZSet 有两种不同的实现分别是 ziplist 和 skiplist。具体使用哪种结构进行存储规则如下 ziplist满足以下两个条件 [value,score] 键值对数量少于 128 个 每个元素的长度小于 64 字节 skiplist不满足以上两个条件时使用跳表、组合了 hash 和 skiplist hash 用来存储 value 到 score 的映射这样就可以在 O(1) 时间内找到 value 对应的分数 skiplist 按照从小到大的顺序存储分数 skiplist 每个元素的值都是 [value,score] 对 1.3 zset的api接口
ortedSet (zset) 是 Redis 提供的一个非常特别的数据结构一方面它等价于 Java 的数据结构 MapString, Double可以给每一个元素 value 赋予一个权重 score另一方面它又类似于 TreeSet内部的元素会按照权重 score 进行排序可以得到每个元素的名次还可以通过 score 的范围来获取元素的列表。
zset 底层使用了两个数据结构
hashhash 的作用就是关联元素 value 和权重 score保障元素 value 的唯一性可以通过元素 value 找到相应的 score 值。 跳跃表跳跃表的目的在于给元素 value 排序根据 score 的范围获取元素列表。 https://blog.51cto.com/u_14191/6345603 二 跳跃表 Redis中ZSet的底层数据结构跳跃表skiplist你真的了解吗