1. 程式人生 > >redis應用分析---登入、收藏模組

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");
     }