Redis-五大数据类型-Zset(有序集合)

发布于:2024-05-07 ⋅ 阅读:(17) ⋅ 点赞:(0)

五大数据类型-Zset(有序集合)


简介

Zset与Set非常相似,是一个没有重复元素的String集合。

不同之处是Zset的每个元素都关联了一个分数(score),这个分数被用来按照从低分到高分的方式排序集合中的元素。集合的元素是唯一的,但分数可以重复。

因为元素是有序的,所以可以根据分数(score)或者次序(position)来获取一个范围内的元素。

常用命令

敲命令前先清除所有key和values

FLUSHALL

在这里插入图片描述

  1. zadd key score1 value1 score2 value2……将一个或多个元素(value)及分数(score)加入到有序集key中。

    如果某个元素已经是有序集的元素,那么更新这个元素的分数值,并通过重新插入这个元素,来保
    证该元素在正确的位置上。

    分数值可以是整数值或双精度浮点数。

    如果有序集合 key 不存在,则创建一个空的有序集并执行 zadd 操作。

    zadd k1 100 python 200 js 300 sql 400 css
    

    在这里插入图片描述

  2. zrange key start end [withscores] 返回key集合中的索引start和索引end之间的元素(包含start和end)。

    其中元素的位置按分数值递增(从小到大)来排序。 其中 0 表示列表的第一个元素,-1表示最后一个元素。

    withscores是可选参数,是否返回分数。

    zrange k1 0 -1 返回集合中所有元素
    zrange k1 0 -1 withscores 返回集合中所有元素,并携带元素分数
    

    在这里插入图片描述

  3. zrangebyscore key minscore maxscore [withscores] 返回key集合中的分数minscore 和分数maxscore 之间的元素(包含minscore 和maxscore )。其中元素的位置按分数值递增(从小到大)来排序。

    zrangebyscore k1 200 400 返回200-400分之间的元素递增排序
    

    在这里插入图片描述

  4. zrevrangebyscore key maxscore minscore [withscores] 返回key集合中的分数maxscore和分数minxscore 之间的元素(包含maxscore和minxscore )。其中元素的位置按分数值递减(从大到小)来排序。

    zrevrangebyscore k1 400 200 返回200-400分之间的元素递减法排序
    

    在这里插入图片描述

  5. zincrby key increment value为元素value的score加上increment的值。

    zincrby k1 50 java 给java元素加上50分
    

    在这里插入图片描述

  6. zcount key minscore maxscore统计该集合在minscore 到maxscore分数区间中元素的个数。

    zcount k1 100 300 统计100分到300分中间元素的个数
    

    在这里插入图片描述

  7. zrank key value返回value在集合中的排名,从0开始。

    zrank k1 sql 返回sql排名
    

    在这里插入图片描述

  8. zrem key value删除该集合下value的元素。

    zrem k1 css 删除css
    

    在这里插入图片描述