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开发运维实践指南》内容,该书作者为黄鹏程,已授权云栖社区转载。**

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
16天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
43 6
|
16天前
|
NoSQL Redis
05- Redis的数据淘汰策略有哪些 ?
Redis 提供了 8 种数据淘汰策略:挥发性 LRU、LFU 和 TTL(针对有过期时间的数据),挥发性随机淘汰,以及全库的 LRU、LFU 随机淘汰,用于在内存不足时选择删除。另外,还有不淘汰策略(no-eviction),允许新写入操作报错而非删除数据。
196 1
|
1天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis缓存数据实战
Redis入门到通关之Redis缓存数据实战
|
18天前
|
存储 NoSQL 算法
redis数据持久化
redis数据持久化
|
23天前
|
NoSQL 安全 网络安全
保护Redis:建立铁壁般的安全防线,守护你的数据财富
保护Redis:建立铁壁般的安全防线,守护你的数据财富
|
存储 NoSQL 关系型数据库
Redis命令——有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。
1506 0
|
存储 NoSQL Redis
redis必杀命令:有序集合(sorted set)
题记 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。
907 0
|
16天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
228 0
|
24天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
191 2
|
30天前
|
NoSQL Redis
Redis集群(六):集群常用命令及说明
Redis集群(六):集群常用命令及说明
187 0

热门文章

最新文章