生活随笔
收集整理的這篇文章主要介紹了
Jedis 设置key的超时时间
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一分鐘之內(nèi)只能發(fā)送一次短信,
若用戶刷新頁面,然后輸入原來的手機號,則繼續(xù)計時
方案:服務(wù)器端要記錄時間戳
方法名:sMSWaitingTime
功能:返回倒計時剩余時間,單位秒
?
Java代碼??
??????????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);????????????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??void?saveExpxKeyCache(HttpServletRequest?request,?HttpServletResponse?response,?String?k,?String?v,long?time)?{????????????String?cid?=?getCid(request,?response);??????????????????RedisHelper?helper?=?RedisHelper.getInstance();??????????helper.saveExpxKeyCache(cid+k,??v,time);????????????????}?????????????????public?void?saveExpxKeyCache(String?k,?String?v,?long?time)?{??????????saveExpxKeyCache(k,?v,?"NX",?time);??????}????????????????????public?void?saveExpxKeyCache(String?k,?String?v,?String?nxxx,?long?time)?{??????????Jedis?jedis?=?Const.pool.getResource();??????????try?{??????????????jedis.set(k,?v,?nxxx,?"EX",?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)容還不錯,歡迎將生活随笔推薦給好友。