美文网首页
redis应用--排行榜

redis应用--排行榜

作者: 诗错亦染瑾 | 来源:发表于2018-12-07 00:13 被阅读14次

    前言: 现在很多APP都有推荐新用户得奖金的活动,比如云闪付,支付宝之类都有,在活动页面加上排行榜,看到那些排名靠前的用户获得那么多奖金更是让新用户跃跃欲试。那排行榜如何实现呢

    redis有序集合sorted set的操作
    1)添加数据
    如果没有名为bonus的sorted set会直接创建一个,并添加第一个数据,用户Ray的奖金为10000.
    如下

        zadd bonus 10000 Ray //第一条
        //下面是添加的其他样本数据
        zadd bonus 9500 Tom 
        zadd bonus 11000 Kris
        zadd bonus 1000 batty
        ...
    

    2)排序输出
    俩种方式,第一种是zrange命令,升序排序;第二种不用说肯定是降序,用zrevrange
    示例:
    第一种

     zrange bonus 0 2 //按奖金升序输出前2个用户名称
    

    第二种

    zrevrange bonus 0 2 //按奖金降序输出前2个用户名称
    

    当然还是不行,还需要输出用户对应的奖金
    命令如下

    zrevrange bonus 0 2 withscores//按奖金降序输出前2个用户名称以及对应的奖金
    

    3)修改数据
    很简单 命令和添加数据一样,因为会覆盖原来的数据
    示例

    :zadd bonus 2000 batty //原来的数据会变为2000
    

    也有第二种方法,在原来数据基础上增加奖金
    示例

    :zincrby bonus 1000 batty //则和上面一样让batty用户的奖金变为2000了
    

    4)获取参与活动的成员数
    zcard bonus 即可

    5)查询某个用户的奖金

    zscore bonus batty //返回2000 因为第三步修改为2000了
    

    6)查询某个奖金区间的人数
    示例:

    zcount bonus 9000 10000 //返回2,有俩人。在做后台统计的时候经常用到
    

    7)删除某个用户
    示例:

    zrem bonus Ray
    

    tip:实际环境中,有时我们会重启系统,为了不影响数据的展示,会伴随系统重启的时候加上初始化更新排行榜的功能。

    欢迎大家加入Java技术群


    1544106895022.png

    相关文章

      网友评论

          本文标题:redis应用--排行榜

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