redis应用分析---登录、收藏模块

redis设置定时器(密码或者频繁接口访问)

//新增逻辑,用radis来限制接口被重复访问。
    //声明一个rediskey特殊标志;
    String redisKey = "ADD_COLLECT" +user_id ;//设置用户的标志
    int count =Integer.valueOf((String) redis.getValue("redisKey"));
    //判断是否是第一次调用接口,如果是第一次调用,设置使用次数为1,调用工具类,将用户标志作为key,次数作为value存入;
    if(count==0 ){
     num=1;
     JedisUtil redis = new JedisUtil();// 获取jedis
     redis.setValue("redisKey", ""+num);
     int a =userService.AdduserCollections(uuid, logger, inputMap);
     if(a==1){
      outputData.setMsg("成功");
      }else{
      outputData.setMsg("失败");
      }
    }
    //判断redis中值存在,累加一次;获取用户访问接口的次数,判断是否大于
    if(count>0){
     num++;
     redis.setTimeValue(redisKey, 60, "21");//设置60s内收藏不能超过20次
     redis.setValue("redisKey", ""+num);
    
     
     if(count>20){
      outputData.setMsg("每分钟只能收藏20次,您收藏过于频繁,请明日再试再试");
      //获取当前的时间,设置24小时候解除限制。
      Date date = new Date();// 新建此时的的系统时间
      Date dateTomorrow=null;
      Calendar calendar = Calendar.getInstance();
       calendar.setTime(date);
       calendar.add(Calendar.DAY_OF_MONTH, +1);//+1今天的时间加一天
       dateTomorrow = calendar.getTime();//获取明天的时间
       redis.setValue("timestart", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dateTomorrow));
     }
    } 
    //作为入参调用AuctionService 的queryAuctionList ()查询拍卖会集合,接收返回值;
//解除禁用状态
    logger.info("调用auctionService的queryAuctionList查询拍卖会集合,入参是"+inputMap);
    
     //判断
    String  date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
    String timestart =(String) redis.getValue("timestart");
     if(date.equals(timestart)){
      redis.delValue("redisKey");
     }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值