ZSET 的存储方式是什么?

提问者:帅平 问题分类:面试刷题
ZSET 的存储方式是什么?
2 个回答
美到拖网速
美到拖网速
Redis中Zset(有序集合)的底层实现是跳跃表(Skip List)和字典。
1、跳跃表
由多个层级组成,每个层级都是一个有序链表。每个节点包含一个值和多个指向下一层节点的指针,这些指针是随机生成的,层数通常不超过log(N)层,N是跳跃表中元素的个数。节点通过分值进行排序,查找、插入、删除操作的时间复杂度为O(log n)。
2、字典
用来保存元素值和元素分值之间的映射关系,使用哈希表实现,可以快速地根据元素值查找元素分值。当有序集合保存的元素数量小于128个且所有元素的长度小于64字节时,Zset会采用压缩列表来实现,以节省内存。
发布于:3个月前 (01-22) IP属地:
深海少女心
深海少女心
ZSET 允许为每个成员关联一个浮点数分值,并按此分值升序排列。为了保证高效的插入、删除和查找操作。
Redis 在内部采用了跳跃表(skiplist)与哈希表相结合的方式来组织数据。跳跃表确保了快速的顺序访问,而哈希表提供了O(1)复杂度的随机访问能力。
发布于:5个月前 (12-02) IP属地:四川省
我来回答