list redis 怎样做排行_redis实现排行榜效果

现在的互联网应用基本都有排行榜这个功能,现在就用java + redis来实现一下吧。

先看一下效果:

引入依赖

redis.clients

jedis

2.7.3

开发思路

1.页面上点击一次购买按钮,则对该手机的销量加 1,同时将销售动态添加到队列当中

jedis.zincrby(Constants.SALES_LIST, 1, String.valueOf(phoneId));

jedis.lpush(Constants.BUY_DYNAMIC, msg);

2.获得排行榜

// 按照scope升序排名,取出前五

jedis.zrevrangeWithScores(Constants.SALES_LIST, 0, 4);

3.获得指定手机的排名情况

jedis.zrevrank(Constants.SALES_LIST, String.valueOf(phoneId));

4.获得销售动态,此处只取 3 条,同时队列只保存最新的 20 条动态

List dynamicList = new ArrayList<>();

for (int i = 0; i < 3; i++) {

String result = jedis.lindex(Constants.BUY_DYNAMIC, i);

if (StringUtils.isEmpty(result)) {

break;

}

String[] arr = result.split(Constants.separator);

long time = Long.valueOf(arr[0]);

String phone = arr[1];

DynamicVO vo = new DynamicVO();

vo.setPhone(phone);

vo.setTime(StringUtil.showTime(new Date(time)));

dynamicList.add(vo);

}

jedis.ltrim(Constants.BUY_DYNAMIC, 0, 19);

源码分享

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值