redis排重_使用Redis实现实时排名

本文介绍了如何利用Redis的Sorted Set数据结构来创建一个实时积分排名系统。通过ZADD、ZINCRBY、ZSCORE、ZREVRANGE等命令实现玩家积分的增加、查看、排名和时间范围内的积分合并,展示了Redis在实时排序场景的应用。
摘要由CSDN通过智能技术生成

Redis用途很广泛,分布式用户Session缓存、爬虫URL队列、活动页面的动态列表信息等。使用Redis实现排行榜系统也是很常见的方案。

假如设计一个积分排名系统。如果积分数据都存放在数据库中,积分的更新是动态的,每次访问排行页面都需要对数据进行重新排序,在真实的产品应用中几乎是不可接受的。

Redis 提供了 sorted set 有序集合数据结构,高效的插入和删除性能,适用于需实时排序的场景。我们先抛开sorted set 的实现机制,先来尝试一下利用redis实现一个实时的排行榜系统。

zadd——新增玩家

zadd 排行榜名称 分数 玩家标识

zadd命令如果重复新增 排行榜名称和玩家标识相同,记录会被覆盖

所以我们使用zincrby实现新增用户的功能

zincrby——增减玩家分数

zincrby 排行榜名称 分数 用户

127.0.0.1:6379> ZINCRBY rank:20180601 5 user1

"10"

127.0.0.1:6379> ZINCRBY rank:20180601 1 user2

"1"

127.0.0.1:6379> ZINCRBY rank:20180601 10 user3

"10"

127.0.0.1:6379> ZINCRBY rank:20180602 15 user1

"15"

127.0.0.1:6379> ZINCRBY rank:20180602 10 user3

"10"

127.0.0.1:6379> ZINCRBY rank:20180603 21 user2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值