使用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设计一个排行榜

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