Redis 基础命令 --- ZSet篇

news/2025/2/23 16:46:09
实验环境
redis版本: 7.0.4
一. 概述

Redis的ZSet是一个可排序的Set集合,ZSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,集合成员是唯一的,但是评分可以重复。

ZSet具备下列特性:

  • 可排序
  • 元素不重复
  • 查询速度快

因为ZSet的可排序特性,经常被用来实现排行榜这样的功能。

二. 命令
  1. 增加元素

    127.0.0.1:6379> ZADD zset1 1 first 2 second 3 third 4 fourth
    (integer) 0
    
  2. 删除元素

    127.0.0.1:6379> ZREM zset1 first
    (integer) 1
    
  3. 获取集合中元素的个数

    127.0.0.1:6379> ZCARD zset1
    (integer) 3
    
  4. 统计score值在给定范围内的所有元素的个数

    127.0.0.1:6379> ZCOUNT zset1 1 4
    (integer) 3
    
  5. 获取指定元素在集合中的排名

    # 正序排名
    127.0.0.1:6379> ZRANK zset1 second
    (integer) 0
    # 逆序排名
    127.0.0.1:6379> ZREVRANK zset1 second
    (integer) 2
    
  6. 返回有序集合中下标在范围之间的元素

    # 正序
    127.0.0.1:6379> ZRANGE zset1 0 2
    1) "second"
    2) "third"
    3) "fourth"
    # 逆序
    127.0.0.1:6379> ZREVRANGE zset1 0 2
    1) "fourth"
    2) "third"
    3) "second"
    
  7. 返回score值介于到范围之间的元素

    # 取出得分0到正无穷的元素(正序)
    127.0.0.1:6379> ZRANGEBYSCORE zset1 0 +inf WITHSCORES
    1) "second"
    2) "2"
    3) "third"
    4) "3"
    5) "fourth"
    6) "4"
    # limit可以起到类似分页的作用
    127.0.0.1:6379> ZRANGEBYSCORE zset1 0 +inf WITHSCORES limit 0 1
    1) "second"
    2) "2"
    
    
    # 取出得分正无穷到0的元素(逆序)
    127.0.0.1:6379> ZREVRANGEBYSCORE zset1 +inf 0 withscores
    1) "fourth"
    2) "4"
    3) "third"
    4) "3"
    5) "second"
    6) "2"
    
    127.0.0.1:6379> ZREVRANGEBYSCORE zset1 +inf 0 withscores  limit 0 1
    1) "fourth"
    2) "4"
    

http://www.niftyadmin.cn/n/5863593.html

相关文章

代码随想录D52-53 图论 Python

目录 101. 孤岛的总面积 102. 沉没孤岛 103. 水流问题 104. 建造最大岛屿 101. 孤岛的总面积 要点: 整体来说是一个图着色的问题。 这道题目的思路符合直觉,但代码实现会和直觉有差别。如果仅使用visit记录不使用着色,会遇到非常多的…

免填邀请码工具:赋能六大核心场景,重构App增长新模型

在移动互联网流量红利逐渐消退的当下,用户转化漏斗中的每个环节都直接影响着App的商业价值。openinstall的免填邀请码工具,通过深度整合渠道归因与轻量化SDK方案,在用户首次打开App时即完成关键信息匹配,重构了传统用户增长模型。…

利用Postman和Apipost进行WebSocket调试和文档设计

在现代 Web 开发中,Websocket 作为一种常见的 Web 协议,与 Restful API 有着本质的不同。Restful API是基于请求-响应模式的单向通信,而 WebSocket 提供全双工通信渠道,允许客户端和服务器之间进行实时双向数据传输。这种特性使得…

MapReduce理论知识与实践

1. 什么是MapReduce MapReduce是一种分布式计算模型,用于处理大量数据。它由Google提出,广泛应用于大数据处理平台(如Hadoop)。MapReduce模型的核心思想是将任务分解成两个阶段:Map阶段和Reduce阶段。 Map阶段&#x…

JavaSE学习笔记25-反射(reflection)

反射 在Java中,反射(Reflection) 是一种强大的机制,允许程序在运行时检查和操作类、方法、字段等信息。通过反射,可以动态地创建对象、调用方法、访问字段,甚至修改私有成员。反射的核心类是 java.lang.re…

Flutter开发的应用页面非常多时如何高效管理路由

文章目录 1. 集中式路由管理示例: 2. 动态路由生成 (onGenerateRoute)示例: 3. 模块化路由管理示例: 4. 使用路由管理库使用go_router的示例: 5. 路由分层管理总结 当Flutter应用中有大量页面时,路由管理变得复杂。为了…

第二届粤港澳大湾区数字经济与人工智能国际学术会议(DEAI 2025)

重要信息 2025年3月28-30日 I 广东省东莞市(广东科技学院-松山湖校区) I www.icdeai.com 简介 第二届粤港澳大湾区数字经济与人工智能(DEAI 2025)将在2025年3月28-30日在广东省东莞市隆重举行。来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、…

Python 高级特性-切片

目录 切片 练习 小结 掌握了Python的数据类型、语句和函数&#xff0c;基本上就可以编写出很多有用的程序了。 比如构造一个1, 3, 5, 7, ..., 99的列表&#xff0c;可以通过循环实现&#xff1a; L [] n 1 while n < 99:L.append(n)n n 2 取list的前一半的元素&am…