Redis的Sorted Set(ZSet)原理是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1057个文字,预计阅读时间需要5分钟。
Sorted Set(ZSet)是一种有序集合数据结构,底层使用压缩列表(ziplist)或跳跃表(skiplist)实现。当元素个数较少时,使用ziplist存储数据;当元素个数较多且需要高效查询时,使用skiplist。
Sorted Set (ZSet) 数据结构-
Sorted Set (ZSet), 即有序集合, 底层使用 压缩列表(ziplist) 或者 跳跃表(skiplist)
- 使用 压缩列表(ziplist)
当同时满足下面两个条件时,使用 ziplist 存储数据- 元素个数少于128个 (zset-max-ziplist-entries: 128)
- 每个元素长度小于64字节 (zset-max-ziplist-value: 64)
- 不满足上面的条件, 使用 跳跃表(skiplist)
- zset 在转为 skiplist 之后,即使元素被逐渐删除,也不会重新转为 ziplist
- 使用 压缩列表(ziplist)
-
有趣的命名: Sorted Set 为啥不缩写为 SSet ? GitHub有人提问
- Z代表XYZ中的Z, 所以有排序的意思(这个说法有点牵强吧)
- Set命令已经使用S作为前缀了, 所以Sorted Set不再使用S (可信度较高)
- SSet 很奇怪, 很难发音 (这个理由也可以接受)
跳表是一种数据结构。
本文共计1057个文字,预计阅读时间需要5分钟。
Sorted Set(ZSet)是一种有序集合数据结构,底层使用压缩列表(ziplist)或跳跃表(skiplist)实现。当元素个数较少时,使用ziplist存储数据;当元素个数较多且需要高效查询时,使用skiplist。
Sorted Set (ZSet) 数据结构-
Sorted Set (ZSet), 即有序集合, 底层使用 压缩列表(ziplist) 或者 跳跃表(skiplist)
- 使用 压缩列表(ziplist)
当同时满足下面两个条件时,使用 ziplist 存储数据- 元素个数少于128个 (zset-max-ziplist-entries: 128)
- 每个元素长度小于64字节 (zset-max-ziplist-value: 64)
- 不满足上面的条件, 使用 跳跃表(skiplist)
- zset 在转为 skiplist 之后,即使元素被逐渐删除,也不会重新转为 ziplist
- 使用 压缩列表(ziplist)
-
有趣的命名: Sorted Set 为啥不缩写为 SSet ? GitHub有人提问
- Z代表XYZ中的Z, 所以有排序的意思(这个说法有点牵强吧)
- Set命令已经使用S作为前缀了, 所以Sorted Set不再使用S (可信度较高)
- SSet 很奇怪, 很难发音 (这个理由也可以接受)
跳表是一种数据结构。

