Redis的ZSet底层数据结构

一、ZSet底层数据结构

c 复制代码
typedef struct zset{
	// 跳表
	zskiplist *zsl;
	// 字典
	dict *dic;
}

zset类型的底层数据结构是由压缩列表或跳表、**字典(哈希表)**实现的。

  • 如果zset中元素个数小于128个,并且每个元素的值小于64字节时,redis采用压缩列表作为zset的底层数据结构;
  • 在不满足上述条件时,redis采用跳表作为zset的底层数据结构。

zset 使用跳表和哈希表,既可以高效地进行范围查询,也能高效地进行单点查询。

二、跳表和哈希表是怎么组织的?

跳表和哈希表各自按照自己的方式存放,但是会指针会指向同一份数据。

zset在执行数据插入或数据更新时,会依次在跳表和哈希表中插入或更新相应的数据,从而保证跳表和哈希表中数据的一致。

相关推荐
打工的小王几秒前
redis(三)redis持久化和集群(redis版本:5.0.4)
数据库·redis·缓存
心之伊始1 小时前
Redis 持久化机制深度解析(RDB / AOF / 混合持久化)
数据库·redis·bootstrap
历程里程碑3 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法
Snow_day.3 小时前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
三水不滴3 小时前
Redis 持久化机制
数据库·经验分享·redis·笔记·缓存·性能优化
wengqidaifeng4 小时前
探索数据结构(二):空间复杂度
c语言·开发语言·数据结构
Once_day4 小时前
代码训练总结(1)算法和数据结构的框架思维
数据结构·算法
挺6的还4 小时前
16.哨兵(sentinel)
redis
鹿角片ljp4 小时前
力扣125.验证回文串-双指针
数据结构·算法
夏乌_Wx4 小时前
练题100天——DAY44:回文链表 ★★☆☆☆
数据结构