数据类型与API(5)Sorted Set

简介: Sorted Set (有序集合)特点有序无重复集合间操作


Sorted Set (有序集合)



特点

  • 有序
  • 无重复
  • 集合间操作


集合 VS 有序集合

集合 有序集合
无重复元素 无重复元素
无序 有序
element element + score


列表 VS 有序集合

列表 有序集合
可以有重复元素 无重复元素
有序 有序
element element + score


常用命令

操作类型 命令
基本操作 zadd、zrem、zcard、zincrby、zscore
范围操作 zrange、zrangebyscore、zcount、zremrangebyrank
集合操作 zunionstore、zinterstore


命令 含义 时间复杂度
zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中 O( M * log(N) ), N 是有序集的基数, M 为成功添加的新成员的数量
zrem 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略 O(M*log(N)), N 为有序集的基数, M 为被成功移除的成员的数量。
zscore 元素的分数 O(1)
zincrby 增加或减少元素的分数 O(log(N))
zcard 元素的总个数 O(1)
zrange 返回指定索引范围内的升序元素【和分值】 O(log(N) + M),N 为有序集的基数,而 M 为结果集的基数
zrangebyscore 返回指定分数范围内的升序元素【和分值】 O(log(N) + M),N 为有序集的基数,而 M 为结果集的基数
zcount 返回有序结合内,在指定分数范围内的元素个数 O(log(N) + M),N 为有序集的基数, M 为值在 min 和 max 之间的元素的数量
zremrangebyrank 删除指定排名内的升序元素 O(log(N) + M),N 为有序集的基数,而 M 为被移除成员的数量
zremrangebyscore 删除指定分数内的升序元素 O(log(N) + M),N 为有序集的基数, M 为结果集的基数


zadd

  • zadd key score element(可以是多对)(向有序集合key添加score和element)

zrem

  • zrem key element(可以是多个) (删除指定元素)

zscore

  • zscore key element (返回元素的分数)

zincrby

  • zincrby key increScore element (增加或减少元素的分数)

zcard

  • zcard key (返回元素的总个数)

zrange

  • zrange key start end [withscores] (返回指定索引范围内的升序元素【和分值】)

zrangebyscore

  • ZRANGEBYSCORE key minScore maxScore [WITHSCORES] [LIMIT offset count] (返回指定分数范围内的升序元素【和分值】)
ZRANGEBYSCORE key -inf +inf # 显示整个有序集

zcount

  • zcount key minScore maxScore (返回有序结合内,在指定分数范围内的元素个数)

zremrangebyrank

  • zremrangebyrank key start end (删除指定排名内的升序元素)

zremrangebyscore

  • zremrangebyscore key minScore maxScore (删除指定分数内的升序元素)
127.0.0.1:6379> zadd report 100 xiaoming 98 xiaohong 85 laowang 60 zhangsan 55 lisi
(integer) 5
127.0.0.1:6379> zscore report laowang
"85"
127.0.0.1:6379> zcard report
(integer) 5
127.0.0.1:6379> zrank report xiaohong
(integer) 3
127.0.0.1:6379> zrank report xiaoming
(integer) 4
127.0.0.1:6379> zrem report lisi
(integer) 1
127.0.0.1:6379> zrange report 0 -1 withscores
1) "zhangsan"
2) "60"
3) "laowang"
4) "85"
5) "xiaohong"
6) "98"
7) "xiaoming"
8) "100"
127.0.0.1:6379> zrangebyscore report 85 100 withscores
1) "laowang"
2) "85"
3) "xiaohong"
4) "98"
5) "xiaoming"
6) "100"
127.0.0.1:6379> zcount report 85 100
(integer) 3
127.0.0.1:6379> zremrangebyrank report 1 1
(integer) 1
127.0.0.1:6379> zrange report 0 -1 withscores
1) "zhangsan"
2) "60"
3) "xiaohong"
4) "98"
5) "xiaoming"
6) "100"
127.0.0.1:6379> zremrangebyscore report 85 98
(integer) 1
127.0.0.1:6379> zrange report 0 -1 withscores
1) "zhangsan"
2) "60"
3) "xiaoming"
4) "100"


其他命令

  • zrevrank
  • zrevrange
  • zrevrangebyscore
  • zinterstore
  • zunionstore
相关文章
|
7天前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
19 0
|
7天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
95 3
|
7天前
|
存储 C++ 容器
set容器一自定义数据类型指定排序规则讲解
set容器一自定义数据类型指定排序规则讲解
25 1
|
7天前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
62 0
|
7天前
|
存储 NoSQL 关系型数据库
Redis Sorted Set 底层实现原理深度解读与排行榜实战
Redis Sorted Set 底层实现原理深度解读与排行榜实战
70 0
|
9月前
|
存储 NoSQL Redis
无序集合的利器:深入了解 Redis 的 Set 数据类型
在现代的应用程序中,对于处理独特值、快速判断成员关系等需求,无序集合是一种重要的数据结构。Redis,作为一款高性能的内存数据库,提供了多种数据类型来满足不同的需求。在本文中,我们将着重介绍 Redis 的 Set 数据类型,探讨其特性、用法以及在实际应用中的优势。
126 0
|
7天前
|
API Python Windows
[已解决] openai.error.AuthenticationError: No API key provided. You can set your API key in code using
[已解决] openai.error.AuthenticationError: No API key provided. You can set your API key in code using
142 0
|
7天前
|
存储 算法 Java
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque
|
7天前
|
NoSQL Redis 索引
⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]
⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]
113 0
|
7天前
|
NoSQL Redis
④【Set】Redis常用数据类型: Set [使用手册]
④【Set】Redis常用数据类型: Set [使用手册]
45 0