首页 > 数据库 >Redis 中ZSET数据类型命令使用及对应场景总结

Redis 中ZSET数据类型命令使用及对应场景总结

时间:2023-01-02 18:13:41浏览次数:49  
标签:127.0 ZSET 0.1 数据类型 元素 Redis rank 6379 key

转载请注明出处:

  目录     1.zadd添加元素     2.zrem 从有序集合key中删除元素     3.zscore 返回有序集合key中元素member的分值     4.zincrby 为有序集合key中元素增加分值     5.zcard获取有序集合key中元素总个数     6.zrange 正序获取分值范围内的元素     7.zrevrange 倒序获取集合元素     8.zrank获取有序集合中元素key的排名     9.zrangebyscore 获取有序集合中分数区间的元素     10.zcount 获取分值区间的元素数量

1.zadd添加元素

zadd key score member 

  示例:

127.0.0.1:6379> zadd user:visit:rank 60 1001
(integer) 1
127.0.0.1:6379>

2.zrem 从有序集合key中删除元素

 zrem key member

  示例:

127.0.0.1:6379> zrem user:visit:rank 1001
(integer) 1
127.0.0.1:6379>

3.zscore 返回有序集合key中元素member的分值

zscore key member

  示例

127.0.0.1:6379> zscore user:visit:rank 1001
(nil)
127.0.0.1:6379> zscore user:visit:rank 1002
"60"
127.0.0.1:6379> 

4.zincrby 为有序集合key中元素增加分值

zincrby key increment member

  为有序集合key中元素member的分值加上increment

  示例

127.0.0.1:6379> zscore user:visit:rank 1002
"60"
127.0.0.1:6379> zincrby user:visit:rank 20  1002
"80"
127.0.0.1:6379> 

  为 1002 用户增加20分,增加20分之后返回新的分数

  应用场景:更新排名的依据,如:阅读量排行榜,每阅读一次,增加一次阅读量

5.zcard获取有序集合key中元素总个数

zcard key

  示例

127.0.0.1:6379> zcard user:visit:rank
(integer) 1
127.0.0.1:6379>

  应用场景:获取排行集合的元素总个数

 6.zrange 正序获取分值范围内的元素

zrange key start stop [withscores]

  正序获取有序集合key从start下标到stop下标的元素;使用withscores 参数时,返回的集合元素带有分数,不适用withscores的参数时,直接返回排名

  注意:参数start和stop都是基于零的索引,即0是第一个元素,1是第二个元素,以此类推。

  它们也可以是负数,表示从有序集合的末尾的偏移量,其中-1是有序集合的最后一个元素,-2是倒数第二个元素,等等。

  示例:

127.0.0.1:6379> zrange user:visit:rank 1 10 withscores
1) "1003"
2) "66"
3) "1002"
4) "80"
5) "1005"
6) "96"
127.0.0.1:6379> zrange user:visit:rank 0 10
1) "1004"
2) "1003"
3) "1002"
4) "1005" 
127.0.0.1:6379>

   应用场景:根据打分的升序排序获取元素集合

 7.zrevrange 倒序获取集合元素

zrevrange key start stop [withscores]

  倒序获取有序集合key从start下标到stop下标的元素

  注意:参数start和stop都是基于零的索引,即0是第一个元素,1是第二个元素,以此类推。

  它们也可以是负数,表示从有序集合的末尾的偏移量,其中-1是有序集合的最后一个元素,-2是倒数第二个元素,等等。

  示例:

127.0.0.1:6379> zrevrange user:visit:rank 1 10 
1) "1002"
2) "1003"
3) "1004"
127.0.0.1:6379> zrevrange user:visit:rank 1 10 withscores
1) "1002"
2) "80"
3) "1003"
4) "66"
5) "1004"
6) "16"
127.0.0.1:6379> 

  应用场景:获取榜单数据(根据打分从高到底)

8.zrank获取有序集合中元素key的排名

zrank key member

  示例:

127.0.0.1:6379> zrank user:visit:rank 1002
(integer) 2
127.0.0.1:6379>

  应用场景:获取自己的排名

9.zrangebyscore 获取有序集合中分数区间的元素

zrangebyscore key min max [ withscores ] [limit offset count]

  根据分数区间获取指定数量的集合,withscores 返回key时同时返回对应的分数;limit 为分页标识;offset 为分页的起始位;count 为分页的数量

  示例:

127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 
1) "1003"
2) "1002"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores
1) "1003"
2) "66"
3) "1002"
4) "80"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 0 1
1) "1003"
2) "66"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 1 1
1) "1002"
2) "80"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 1 2
1) "1002"
2) "80"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 0 2
1) "1003"
2) "66"
3) "1002"
4) "80"
127.0.0.1:6379> zrangebyscore user:visit:rank 60 90 withscores limit 2 1
(empty list or set)
127.0.0.1:6379>

  应用场景:分页获取排名元素集合

10.zcount 获取分值区间的元素数量

zcount key min max

  示例:

127.0.0.1:6379> zcount user:visit:rank 60 90
(integer) 2
127.0.0.1:6379>

  

 

标签:127.0,ZSET,0.1,数据类型,元素,Redis,rank,6379,key
From: https://www.cnblogs.com/zjdxr-up/p/17020259.html

相关文章

  • 2.4 基本数据类型
    2.4基本数据类型基本数据类型包括:整型浮点型布尔类型字符串以上四种数据类型在几乎所有的编程语言中都支持2.4.1整型计算机基础科普字节(Byte):计算机中数据......
  • Redis的自增也能实现滑动窗口限流?
    限流是大家开发之路上一定会遇到的需求。比如:限制一定时间内,接口请求请求频率;一定时间内用户发言、评论次数等等,类似于滑动窗口算法。这里分享一份拿来即用的代码,一起看看......
  • redis单节点移动到集群
    redis部署1.redis下载wgethttps://download.redis.io/releases/redis-6.2.8.tar.gz2.安装yuminstall-ygcctar-xzvfredis-6.2.8.tar.gzcdredis-6.2.8makemakeinsta......
  • javascript-数据类型-数据类型,获取数据变量的类型,数据类型的转换
    javascript-数据类型-数据类型,获取数据变量的类型,数据类型的转换目录javascript-数据类型-数据类型,获取数据变量的类型,数据类型的转换学习目标:1.数据类型简介1.1为什么......
  • Springboot中通过模糊匹配Redis中的key来删除对应的数据
    Springboot中通过模糊匹配Redis中的key来删除对应的数据在指定情况中,redis中存储的key值为指定前缀+可变的id组成,所以需要批量删除改前缀存储的所有数据,那么由于key的不确......
  • Java:SpringBoot整合Redis实现数据缓存
    目录结构$tree.├──pom.xml└──src├──main│├──java││└──com││└──example││......
  • Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    1.MemcachedMemcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、......
  • JavaScript(数据类型)
    一、数据类型1.概述为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。2.变量的数据类型varage=10;//数字型varareYouOk......
  • redis单节点与集群模式
    23.redis实战Dockerfileroot@k8s-master1:~/k8s-data/dockerfile/web/magedu/redis#catDockerfile#RedisImageFROMharbor.nbrhce.com/baseimages/centos:7.9.20......
  • Redis set数据类型命令使用及应用场景使用总结
    转载请注明出处:目录1.sadd集合添加元素2.srem移除元素3.smembers获取key的所有元素4.scard获取key的个数5.sismember判断member元素是否存......