redis的5种基础数据结构(三): set(集合)和 zset(有序列表)

一、 set(集合)

简单概述

1.相当于java中的HashSet,它内部的键值对是无序的,唯一的。
2. set结构可以用来存储某活动中奖用户Id,因为有去重功能,可以保证同一用户不会中奖两次。

二、zset(有序列表)

最有特色的数据结构。
zset内部的排序功能是通过“跳跃列表”的数据结构来实现的。

哈希字典 + 跳跃列表
问:如何快速定位新元素的位置插入点?
答:层级制。每隔几个元素就挑选出一个代表,然后用指针串联起来,形成金字塔结构。(其实就是二分法的反向应用)

插入元素时,从高层开始查找(找到最后一个比我小的元素),找到后,去下一层继续查找
核心:搜索路径

当score进行变更时,redis先进行删除,在进行新增,经过两次的搜索路径执行

posted @ 2021-09-17 21:12  '蜗牛'  阅读(253)  评论(0)    收藏  举报