redis操作5 对存储Zset的操作

有序集合zset 与 set相似   没有重复的元素的字符串集合

不同处为:zset每个成员关联了一个评分(score) ,被用来按照从低到高的方式排序集合中的成员

成员是唯一的,评分可以重复

底层具有两种结构(hash和跳跃表)

hash将值和评分存储起来

用跳跃表存储评分(可以更快的查找到评分和对应的值)(占空间变大,但获得的时间效率高)

跳跃表就是抛硬币策略大致保证上层关键节点分布均匀,并通过先遍历上层的关键节点判断是否在范围内,都不在范围内进入下一层从上层最后的节点开始遍历

在的话进入下一层从上层范围前一个进行遍历

 

 

 

 

 

 

 

添加值和评分(k1 为key)

zadd k1 200 java 300 c++ 400 mysql

删除值

zrem k1 java

统计评分范围内的数量

zcount k1 200 300

统计值的排名(从小到大排      最小的为0开始)

zrank k1 java

根据下标范围从小到大获取值和评分(下标在0到-1之间的)(不需要评分可删去withscores)

zrange k1 0 -1 withscores

根据评分范围从小到大获取值和评分(评分在300到500之间的)(不需要评分可删去withscores)

zrangebyscore k1 300 500 withscores

根据评分范围(从大到小)获取值和评分(评分在300到500之间的)(不需要评分可删去withscores)

zrevrangebyscore k1 300 500 withscores

增加元素的score值(10为增加量)

zincrby k1 10 java

 

posted @ 2021-08-06 18:00  低调的。。。  阅读(440)  评论(0编辑  收藏  举报