使用redis设计一个排行榜

作者: H_Man | 来源:发表于2018-01-24 15:01 被阅读216次

公司的app里面需要加一个排行榜的功能,做完之后,分享给大家

思路

入口MQ----------操作Redis-----------同步mysql

实现方式

使用了redis的排行榜的功能

MQ consumer

String publicKey="rank.public";
String privateKey = "rank.private_"

public void updateRank(int userId,long score){
    
     //更新排行榜缓存
     redisClient.zincrby(publicKey,score,userId);
     //维护单个用户
     redisClient.incrBy(privateKey+userId,score);
    //异步更新mysql:因人而异(就不写出来了,简单的一个线程工具)
    UpdateQueue.update(userId,score);
}
public void queryRankTopFive(){
   //查询前5
  Set<String> zrange = redisClient.zrevrange(publicKey,0,4);
   //得到之后就可以去按照自己业务去做一些封装了
  zrange.forEach(key -> {
        Long score = redisClient.get(privateKey+key);
        System.out.println(key+":"+score);
  });
}

这样一个排行榜就设计完成了.

相关文章

  • 使用redis设计一个排行榜

    公司的app里面需要加一个排行榜的功能,做完之后,分享给大家 思路 入口MQ----------操作Redis--...

  • 使用redis实现排行榜

    写在前面 排行榜在很多地方都能使用到,redis的zset可以很方便地用来实现排行榜功能。本文是一个示例。 聊聊 ...

  • Redis能做什么?不能做什么?

    一、根据redis设计与实现中整理了学习的思路: 为什么要选择Redis:介绍Redis的使用场景与使用Redis...

  • Redis Cluster 集群的搭建

    一、redis-cluster设计Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3...

  • 2.跳表的基本实现和特性

    一、跳表 跳表的设计与实现为啥 redis 使用跳表(skiplist)而不是使用 red-black redis...

  • 关于Redis的一些思考和总结

    日常的业务系统中经常使用到redis,平时也会研究下redis的设计文档和源码,对redis的使用场景、实现方案、...

  • Redis 怎么做消息队列?

    结论是:不要使用redis去做消息队列,这不是redis的设计目标。 但实在太多人使用redis去做去消息队列,r...

  • 【redis】二、基本使用

    使用过Redis,那就先说说使用过那些场景吧 字符串缓存 队列 发布订阅 计数器 排行榜 集合间操作 string...

  • Redis实现排行榜(按正确率和交卷时间排序)

    排行榜因为即时性的要求,所以我们一般会使用Redis,下面就来详细讲一下Redis在帮行榜中的具体应用。 首先确定...

  • redis-总结

    Redis使用场景 String 计数器 (排行榜,阅读量,浏览量等等)(incr decr) Web集群的ses...

网友评论

    本文标题:使用redis设计一个排行榜

    本文链接:https://www.haomeiwen.com/subject/aqjuaxtx.html