redis 常用数据类型操作五 有序集合(zset)
redis 有序集合(zset)
简介
redis的有序集合zset和普通集合set极其相似,是一个 没有重复元素的字符串集合
不同之处是有序集合的每个成员都关联了一个 评分(score) 这个评分(score) 被用来按照从最低份到最高分的方式排序集合中的成员。集合中的成员是唯一的,但是评分是可以重复了
因为元素的上有序的,所以可以很快的根据评分(score)或者次序(position)来获取一个范围内的元素
访问有序集合的中间元素也是非常快的,因此能够使用有序集合做一个没有重复成员的智能列表。
常用命令
zadd
zrange
zrangebyscores key min max [withscores] [limit offset count]:返回有序集合key中,所有score值介于min和max 之间(包括等于min或max)的成员。有序结合按score值递增(从小到大)次序排列
zrevrangebyscores key max min[withscores] [limit offset count] 同上 ,改为从大到小排列
zincryby
zrem
zcount
zrank
数据结构
zset是redis 提供的一个非常特殊的数据结构,一方面他等价于c#的Dictionary
zset底层使用了两个数据结构
(1)hash,hash的作用就是关联value的权重score,保障value的唯一性,可以通过value找到对应score值
(2)跳跃表,跳跃表的目的是在于给元素value排序,根据socre的范围来获取元素列表。