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