Redis开发运维实践数据操作有序集合操作

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介:

2.5.1 添加元素


zadd key score member

添加元素到集合,元素在集合中存在则更新对应score。


2.5.2 删除元素


zrem key member

1表示成功,如果元素不存在返回0

zremrangebyrank key min max

删除集合中排名在给定区间的元素

zremrangebyscore key min max

删除集合中score在给定区间的元素


2.5.3 增加score


zincrby key incr member

增加对应member的score值,然后移动元素并保持skip list保持有序。返回更新后的score值,可以为负数递减


2.5.4 获取排名


zrank key member

返回指定元素在集合中的排名(下标,注意不是分数),集合中元素是按score从小到大排序的

zrevrank key member

同上,但是集合中元素是按score从大到小排序


2.5.5 获取排行榜


zrange key start end

类似lrange操作从集合中去指定区间的元素。返回的是有序结果

zrevrange key start end 同上,返回结果是按score逆序的,如果需要得分则加上withscores

注:index从start到end的所有元素


2.5.6 返回给定分数区间的元素


zrangebyscore key min max

可以指定inf为无穷


2.5.7 返回集合中score在给定区间的数量


zcount key min max


2.5.8 返回集合中元素个数


zcard key


2.5.9 返回给定元素对应的score


zscore key element


2.5.10 评分的聚合


ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]

例如:


127.0.0.1:6379> zrangebyscore votes -inf inf withscores

1) "sina"

2) "1"

3) "google"

4) "5"

5) "baidu"

6) "10"

127.0.0.1:6379> zrangebyscore visits -inf inf withscores

1) "baidu"

2) "1"

3) "google"

4) "5"

5) "sina"

6) "10"

127.0.0.1:6379> zunionstore award 2 visits votes weights 1 2 aggregate sum

(integer) 3

127.0.0.1:6379> zrangebyscore award -inf inf withscores

1) "sina"

2) "12"

3) "google"

4) "15"

5) "baidu"

6) "21"

一个小技巧是如果需要对评分进行倍加,则使用如下的方法:

127.0.0.1:6379>zrangebyscore visits -inf inf withscores

1) "baidu"

2) "1"

3) "google"

4) "5"

5) "sina"

6) "10"

127.0.0.1:6379>zunionstore visits 1 visits weights 2

(integer) 3

127.0.0.1:6379>zrangebyscore visits -inf inf withscores

1) "baidu"

2) "2"

3) "google"

4) "10"

5) "sina"

6) "20"


**本文为《Redis开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。**

相关文章
|
1月前
|
机器学习/深度学习 运维 监控
别让运维只会“救火”——用数据点燃业务增长的引擎
别让运维只会“救火”——用数据点燃业务增长的引擎
124 12
|
2月前
|
机器学习/深度学习 存储 运维
数据别乱跑!聊聊智能运维如何减少数据丢失风险
数据别乱跑!聊聊智能运维如何减少数据丢失风险
109 4
|
3月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
151 0
|
4月前
|
运维 算法 机器人
阿里云AnalyticDB具身智能方案:破解机器人仿真数据、算力与运维之困
本文将介绍阿里云瑶池旗下的云原生数据仓库AnalyticDB MySQL推出的全托管云上仿真解决方案,方案采用云原生架构,为开发者提供从开发环境、仿真计算到数据管理的全链路支持。
|
4月前
|
SQL 存储 运维
别让运维数据“各过各的”:聊聊数据湖怎么搭,才能不成“沼泽”
别让运维数据“各过各的”:聊聊数据湖怎么搭,才能不成“沼泽”
171 0
|
2月前
|
运维 监控 机器人
别等出事才救火:实时监控数据才是运维的救命稻草
别等出事才救火:实时监控数据才是运维的救命稻草
157 8
|
4月前
|
运维 监控 关系型数据库
API天天出毛病?不如翻翻运维数据,真相都藏在这儿
API天天出毛病?不如翻翻运维数据,真相都藏在这儿
134 10
|
4月前
|
运维 监控 数据可视化
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
你以为运维只管系统稳定?不,数据玩得好还能指导老板赚钱!
117 4
|
4月前
|
数据采集 运维 数据可视化
如何从“凭经验运维”到“用数据决策”?
在数字化转型加速的今天,企业网络已成为支撑业务运转的“数字血管”。传统依赖经验的运维模式已难适应需求,ManageEngine OpManager 以全链路数据能力,助力企业实现数据驱动的智能运维,提升资源利用率、优化网络性能,推动网络从“被动响应”迈向“主动预测”,为业务连续性与竞争力保驾护航。
94 0

热门文章

最新文章