redis的5种基础数据结构(三): set(集合)和 zset(有序列表)
一、 set(集合)
简单概述
1.相当于java中的HashSet,它内部的键值对是无序的,唯一的。
2. set结构可以用来存储某活动中奖用户Id,因为有去重功能,可以保证同一用户不会中奖两次。
二、zset(有序列表)
最有特色的数据结构。
zset内部的排序功能是通过“跳跃列表”的数据结构来实现的。
哈希字典 + 跳跃列表
问:如何快速定位新元素的位置插入点?
答:层级制。每隔几个元素就挑选出一个代表,然后用指针串联起来,形成金字塔结构。(其实就是二分法的反向应用)
插入元素时,从高层开始查找(找到最后一个比我小的元素),找到后,去下一层继续查找
核心:搜索路径
当score进行变更时,redis先进行删除,在进行新增,经过两次的搜索路径执行

浙公网安备 33010602011771号