首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis 5 有序集合新增命令

Redis 5 有序集合新增命令

作者头像
dys
发布2018-12-05 16:13:51
1.3K0
发布2018-12-05 16:13:51
举报
文章被收录于专栏:性能与架构性能与架构

Redis 5 已经发布了,对有序集合新增了4个命令:

  • ZPOPMAX
  • ZPOPMIN
  • BZPOPMAX
  • BZPOPMIN

下面看一下这几个命令的作用和用法。

ZPOPMAX

命令:

ZPOPMAX key [count]

作用:

从指定集合中删除并返回 count 个 score 值最高的元素。如果没有指定 count,默认值为 1。如果 count 大于 1,返回值按 score 排序,score 最大的第一个返回。

示例:

# 添加元素
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
# 查看集合元素及其score
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
# 返回2个score值最高的元素
redis> ZPOPMAX myzset 2
1) "three"
2) "3"
3) "two"
4) "2"
# 查看集合剩余元素
redis> ZRANGE myzset 0 -1
1) "one"

ZPOPMIN

命令:

ZPOPMIN key [count]

作用:

与 ZPOPMAX 一样,只是返回 score 最小的。

BZPOPMAX

命令:

BZPOPMAX key [key ...] timeout

作用:

BZPOPMAX 是 ZPOPMAX 的阻塞版本,作用与 ZPOPMAX 相同,只是在目标集合中没有元素时会阻塞,timeout 参数指定了过期时间(0 表示永不超时)。

示例:

在窗口1中执行:

# 添加集合元素
redis> ZADD myzset2 1 "one" 2 "two"
(integer) 2
redis> ZRANGE myzset2 0 -1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
# 取出一个元素,集合中还剩一个元素
redis> BZPOPMAX myzset2 0
1) "myzset2"
2) "two"
3) "2"
# 取出一个元素,集合空了
redis> BZPOPMAX myzset2 0
1) "myzset2"
2) "one"
3) "1"
# 再取元素时,会阻塞
redis> BZPOPMAX myzset2 0
# 进入阻塞状态

在窗口2中添加元素:

redis> ZADD myzset2 3 "tree"
(integer) 1

查看窗口1

redis> BZPOPMAX myzset2 0
1) "myzset2"
2) "tree"
3) "3"

显示出窗口2中添加的数据,然后退出阻塞。

BZPOPMIN

命令:

BZPOPMIN key [key ...] timeout

作用:

与 BZPOPMAX 一样,只是选择 score 最小的元素。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ZPOPMAX
  • ZPOPMIN
  • BZPOPMAX
  • BZPOPMIN
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档