⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: ⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]


⑤Redis Zset 操作命令汇总



  • Zset和set一样都是String类型的不可重复集合,但是有序的
  • ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
  • 每个元素都会关联一个double类型的分数,以此为集合成员进行由小到大的排序


快速理解:

Zset就是在set的基础上,每个值前加一个分数值

之前set是k1 v1 v2

现Zset是k1 score1 v1 score2 v2


1. zadd 添加或更新一个或多个成员


zadd key score member [score member ...]


# 有序集合z1,成员a b c分数值分别为10 20 30
zadd z1 10 a 20 b 30 c



2. zrange 返回指定区间范围的有序集合成员


zrange key start stop [WITHSCORES]


# 获取指定区间范围的有序集合成员,0值-1代表所有范围
 zrange z1 0 -1
# withscores可选参数,可将成员的分数值一并输出
 zrange z1 0 -1 withscores



3. zrevrange 根据分数从高到低,返回指定区间范围的有序集合成员


zrevrange key start stop [WITHSCORES]


# 根据分数从高到低,获取指定区间范围的有序集合成员,0值-1代表所有范围
 zrevrange z1 0 -1
# withscores可选参数,可将成员的分数值一并输出
 zrevrange z1 0 -1 withscores



4. zrangebyscore 获取指定分数范围的成员


zrangebyscore key min max [WITHSCORES] [LIMIT offset count]


# 获取指定分数值范围的有序集合成员
 zrangebyscore z1 10 30
# (10 30即:10值30范围但不包含10
 zrangebyscore z1 (10 30
 # 10 (30即:10值30范围但不包含30
 zrangebyscore z1 10 (30
 # withscores可选参数,可将成员的分数值一并输出
 zrangebyscore z1 10 30 withscores



5. zscore 获取指定成员的分数值


zscore key member


# 获取有序集合z1中指定成员的分数值
zscore z1 a
zscore z1 b
zscore z1 c



6. zcard 获取集合中成员的数量


zcard key


# 获取有序集合z1中成员的个数
zcard z1



7. zrem 移除有序集合中一个或多个成员


zrem key member [member ...]


# 移除有序集合z1中指定的成员
zrem z1 a b



8. zincrby 为指定成员的分数值添加增量


zincrby key increment member


# 为有序集合Z1成员c的分数值添加增量36,返回运算后的分数值
zrem z1 a b



9. zcount 获取指定分数范围内的成员数量


zcount key min max


# 获取指定分数范围内的成员数量
zcount z1 30 70



10. zmpop 从有序集合中移除第一个非空排序集合(可设置数量)


zmpop numkeys key [key ...] MIN|MAX [COUNT count]


# zmpop 移除个数 有序集合 min|max count 限制数
 zmpop 1 z1 min count 1



11. zrank 获取指定成员的下标索引


zrank key member


# 获取z1中指定成员的下标索引
zrank z1 cpp
zrank z1 java



12. zrevrank 逆序地获取指定成员的下标索引


zrevrank key member


# 逆序获取z1中指定成员的下标索引
zrevrank z1 cpp
zrevrank z1 java




目录
相关文章
|
22天前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
87 1
|
4月前
|
存储 NoSQL 定位技术
Redis数据类型面试给分情况
Redis常见数据类型包括:string、hash、list、set、zset(有序集合)。此外还包含高级结构如bitmap、hyperloglog、geo。不同场景可选用合适类型,如库存用string,对象存hash,列表用list,去重场景用set,排行用zset,签到用bitmap,统计访问量用hyperloglog,地理位置用geo。
112 5
|
4月前
|
NoSQL Java Redis
Redis基本数据类型及Spring Data Redis应用
Redis 是开源高性能键值对数据库,支持 String、Hash、List、Set、Sorted Set 等数据结构,适用于缓存、消息队列、排行榜等场景。具备高性能、原子操作及丰富功能,是分布式系统核心组件。
482 2
|
6月前
|
存储 缓存 NoSQL
Redis中的常用命令-get&set&keys&exists&expire&ttl&type的详细解析
总的来说,这些Redis命令提供了处理存储在内存中的键值对的便捷方式。通过理解和运用它们,你可以更有效地在Redis中操作数据,使其更好地服务于你的应用。
389 17
|
11月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
406 85
|
8月前
|
NoSQL Redis
Redis的常用数据类型有哪些 ?
Redis 有 5 种基础数据结构,它们分别是:string(字符串)、list(列表)、hash(字典)、set(集 合) 和 zset(有序集合)
|
8月前
|
存储 NoSQL Redis
投行系统的毫秒级榜单响应:如何用Redis ZSET破解同分排序难题?
通过Redis的ZSET数据结构和更新时间戳,解决投行交易系统实时排行榜中同分跳变的问题。具体方案为:将交易量作为整数部分,更新时间戳作为小数部分,确保同分时按最新更新排序,实现实时、高效、无需应用层干预的排行榜功能。一句话总结:通过Redis ZSET加更新时间戳,解决百万交易排行榜实时显示及同分难题。
|
11月前
|
存储 NoSQL Redis
redis常见数据类型
Redis 是一种基于内存的键值存储数据库,支持字符串、哈希表、列表、集合及有序集合等多种数据类型,每种类型均有特定用途与适用场景,提供丰富的命令操作,适用于高速数据访问与处理。
179 5
|
12月前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
224 1
|
存储 NoSQL 算法
Redis之zset实现滑动窗口限流
Redis之zset实现滑动窗口限流
2244 0
Redis之zset实现滑动窗口限流

热门文章

最新文章

下一篇
开通oss服务