一、ZSet 类型

    1、Redis 有序集合 zSet 与普通集合 set 非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复的
    2、因为元素是有序的,所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
        访问有序集合的中间元素也是非常快的,因此能够使用有序集合作为一个没有重复成员的智能列表。

 

二、常用操作

zadd <key><score1><value1><score2><value2>...
将一个或多个 member 元素及其 score 值加入到有序集 key 当中
zrange <key> <start> <stop> [withscores]
返回有序集 key 中,下标在 <start><stop>之间的元素,
带 withscores,可以让分数一起和值返回到结果集
zrangebyscore key min max [withscores] [limit offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于min 或max)的成员。
有序集成员按 score 值递增(从小到大)次序排列
zrevrangebyscore key max min [withscores] [limit offset count]
同上,改为从大到小排列
zincrby <key> <increment> <value>
为元素的 score 加上增量
zrem <key> <value>
删除该集合下,指定值的元素
zcount <key> <min> <max>
统计该集合,分数区间内的元素个数
zrank <key> <value>
返回该值在集合中的排名,从0开始

 

  特殊情况
  1、相同分数,相同值,无法添加进去;
  2、不同分数,相同值,会将分数更新掉;
  3、相同分数,不同元素(值):能添加进去,还能正常排序

 

  zSet 以 value 为键,分数为值

 

三、案例

  如何利用 zSet 实现一个文章访问量的排行榜?
  可以利用 zSet 的升序以及降序来排序,然后实现排名。

 

posted on 2022-01-12 14:08  格物致知_Tony  阅读(136)  评论(0编辑  收藏  举报

目录导航