日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jedis 设置key的超时时间

發(fā)布時間:2023/12/9 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jedis 设置key的超时时间 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一分鐘之內(nèi)只能發(fā)送一次短信,

若用戶刷新頁面,然后輸入原來的手機號,則繼續(xù)計時

方案:服務(wù)器端要記錄時間戳

方法名:sMSWaitingTime

功能:返回倒計時剩余時間,單位秒

?

Java代碼??
  • /***?
  • ?????*?倒計時還剩余多長時間?
  • ?????*?@param?mobile?:?手機號?
  • ?????*?@return?:?second?
  • ?????*/??
  • ????public?int?sMSWaitingTime(String?mobile)?{??
  • ????????HttpServletRequest?request?=?((ServletRequestAttributes)?RequestContextHolder.getRequestAttributes()).getRequest();??
  • ????????HttpServletResponse?response?=?((ServletRequestAttributes)?RequestContextHolder.getRequestAttributes()).getResponse();??
  • ????????RedisHelper?rdsHelper?=?RedisHelper.getInstance();??
  • ????????String?cid?=?getCid(request,?response);??
  • ??????????
  • ????????String?lastSendSMSTime?=?rdsHelper.getCache(cid+mobile);//getKeyCache(request,?response,?mobile)?;??
  • ??
  • ????????if(StringUtil.isNullOrEmpty(lastSendSMSTime))?{??
  • ????????????saveExpxKeyCache(request,?response,?mobile,?String.valueOf(DateTimeUtil.getCurrentTimeSecond()),60);??
  • ????????????return?0;??
  • ????????}?else?{??
  • ????????????long?lastSendSMSTimeSecond=Long.parseLong(lastSendSMSTime);??
  • ????????????long?currentTimeSecond=DateTimeUtil.getCurrentTimeSecond();??
  • ????????????int?delter=(int)?(currentTimeSecond-lastSendSMSTimeSecond);??
  • ????????????System.out.println("delter:"+delter);??
  • ????????????if(delter>=60){??
  • ????????????????return?0;??
  • ????????????}else{??
  • ????????????????return?60-delter;??
  • ????????????}??
  • ????????}??
  • ????}??
  • ?

    jedis 可以設(shè)置key的超時時間:

    Java代碼??
  • public?/*synchronized*/?void?saveExpxKeyCache(HttpServletRequest?request,?HttpServletResponse?response,?String?k,?String?v,long?time)?{??
  • ??
  • ????????String?cid?=?getCid(request,?response);??
  • ??
  • //????????logger.debug("cid?is?"?+?cid);??
  • //????????logger.debug("set?"?+?k?+?"?to?value?:?"?+?v);??
  • ??
  • ????????RedisHelper?helper?=?RedisHelper.getInstance();??
  • ????????helper.saveExpxKeyCache(cid+k,??v,time);??
  • ??
  • //????????jedis.hset(httpSession.getId(),?k,?v);??
  • //????????jedis.expire(httpSession.getId(),?3600);??
  • ??
  • ??
  • ????}??
  • ??
  • ?/***?
  • ?????*?Only?set?the?key?if?it?does?not?already?exist?
  • ?????*?
  • ?????*?@param?k?
  • ?????*?@param?v?
  • ?????*?@param?time?:?second?
  • ?????*/??
  • ????public?void?saveExpxKeyCache(String?k,?String?v,?long?time)?{??
  • ????????saveExpxKeyCache(k,?v,?"NX",?time);??
  • ????}??
  • ??
  • ????/***?
  • ?????*?@param?k?
  • ?????*?@param?v?
  • ?????*?@param?nxxx?:??NX|XX,?NX?--?Only?set?the?key?if?it?does?not?already?exist.?XX?--?Only?set?the?key?
  • ?????*?????????????if?it?already?exist.?
  • ?????*?@param?time?:?second?
  • ?????*/??
  • ????public?void?saveExpxKeyCache(String?k,?String?v,?String?nxxx,?long?time)?{??
  • ????????Jedis?jedis?=?Const.pool.getResource();??
  • ????????try?{??
  • ????????????jedis.set(k,?v,?nxxx,?"EX"/*seconds*/,?time);??
  • ????????}?catch?(Exception?e)?{??
  • ????????????e.printStackTrace();??
  • ????????????logger.error("saveKeyCache",?e);??
  • ????????????Const.pool.returnBrokenResource(jedis);??
  • ????????????jedis?=?null;??
  • ????????}?finally?{??
  • ????????????if?(jedis?!=?null)?{??
  • ????????????????Const.pool.returnResource(jedis);??
  • ????????????}??
  • ????????}??
  • ????}??
  • ?

    ?

    參考:

    http://hw1287789687.iteye.com/blog/2225130

    總結(jié)

    以上是生活随笔為你收集整理的Jedis 设置key的超时时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。