目录一. Zset有序集合简介.二. 添加元素相关命令.2.1 向有序集合中添加元素(zadd)三. 查询元素相关操作.3.1 查询有序集合中的元素个数( zcard zcount)3.2 查询指定区间内的元素
定义: Zset(有序集合)是Redis中的一种数据类型,它保留了集合不能有重复成员的特点,但与普通集合不同的是,Zset中的每个元素都与一个唯一的浮点类型的分数(score)相关联,这使得Zset中的元素可以维护有序性。
如何保证有序性: 每个元素都与一个分数相关联,分数用于确定元素在集合中的位置,且分数可以重复。当分数相同时,元素会根据其字典顺序进行排序。
**Zset在Redis中底层的编码方式:
ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...]
解释参数含义:
时间复杂度:
O(log(N)),其中N是排序集合中元素的个数。
演示命令的使用:



命令基本格式:
ZCARD keyZCOUNT key min max
时间复杂度:
zcard O(1)zcount O(log(N)) N是排序集合中元素的个数。
演示命令的使用:

命令基本格式:
ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES] 获取指定下标范围内的元素ZREVRANGE key start stop [WITHSCORES] 逆序获取指定下标范围内的元素ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 按照分数来找元素,和zcount的效果类似
时间复杂度:
zrange O(log(N)+M),其中N是排序集合中的元素个数,M是返回的元素个数。zrevrange O(log(N)+M),其中N是排序集合中的元素个数,M是返回的元素个数。zrangebyscore O(log(N)+M)其中N是排序集合中的元素个数M是返回的元素个数。如果M是常数(例如总是要求前10个元素有LIMIT),你可以认为它是O(log(N))。
演示命令的使用:

命令基本格式:
ZRANK key member [WITHSCORE] 查询有序集合中指定成员的排名ZREVRANK key member [WITHSCORE] 查询有序集合中指定成员的逆序排名
时间复杂度:
O(log(N))
演示命令的使用:

命令基本格式:
ZSCORE key member查询有序集合中指定成员的分数
时间复杂度:
O(1)
演示命令的使用:

命令基本格式:
ZPOPMAX key [count] 删除并返回最大的n个元素ZPOPMIN key [count] 删除并返回最小的n个元素
时间复杂度:
都是 O(log(N)*M)其中N是排序集合中的元素个数,M是弹出的元素个数。
演示命令的使用:

命令基本格式:
BZPOPMAX key [key ...] timeoutBZPOPMIN key [key ...] timeout
时间复杂度:
O(log(N)) N是排序集合中元素的个数O(log(N)) N是排序集合中元素的个数
演示命令的使用:


命令基本格式:
ZREM key member [member ...] 删除有序集合中的n个元素ZREMRANGEBYRANK key start stop 删除有序集合中指定排名范围内的成员ZREMRANGEBYSCORE key min max 删除有序集合中指定分数范围内的成员
时间复杂度:
zrem O(M*log(N)),其中N是排序集合中元素的个数,M是要移除的元素的个数
zremrangebyrank O(log(N)+M),其中N是排序集合中的元素个数,M是操作移除的元素个数
zremrangebyscore O(log(N)+M),其中N是排序集合中的元素个数,M是操作移除的元素个数。
演示命令的使用:

命令基本格式:
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE <SUM | MIN | MAX>]
解释参数含义:
时间复杂度:
O(N*K)+O(M*log(M))最坏情况,其中N是最小的输入排序集,K是输入排序集的个数,M是结果排序集中元素的个数。
命令基本格式:
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE <SUM | MIN | MAX>]
时间复杂度:
O(N)+O(M log(M)),其中N是输入排序集的大小之和,M是结果排序集的元素个数。
演示命令的使用:

到此这篇关于Redis中Zset类型常用命令的实现的文章就介绍到这了,更多相关Redis Zset命令内容请搜索编程网(www.lsjlt.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网(www.lsjlt.com)!
--结束END--
本文标题: Redis中Zset类型常用命令的实现
本文链接: https://www.lsjlt.com/news/623597.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0