Ⅰ java 如何設置臨時文件有效期
你的程序還在運行的話,你可以使用定時器運行一個任務來刪除,不然只能 deleteOnExit在JVM退出時刪掉
Ⅱ 在Java中怎麼判斷有效時間!!!
我記得在看ORACLE的資料庫培訓教程里有SQL語句可以把一定格式字元串直接轉成時間的。你在網上搜下相關資料:
Ⅲ java編程代碼 redisTemplate過期時間問題
我以前項目中的做法是在保存的對象上,增加一個過期時間屬性,get之後,判斷系統時間是否超過過期時間,超過的話就刪掉這個key,或者是從DB重新載入。
Ⅳ 請問,java高手,java中的session默認是有個有效期的吧,比如有效期是20分鍾,
session 有效期是說 你20分鍾內不再有請求 你一直操作=一直有請求 所以不會斷
Ⅳ 在java中如何獲取有效時間
給你寫出來了,System.out.println(w.daycount(20130723, 20130729));
休息日
Sat Jul 27 00:00:00 CST 2013
休息日
Sun Jul 28 00:00:00 CST 2013
工作專日總共屬有5天
Ⅵ java設置 redis 失效時間多久
EXPIRE命令返回1表示成功,返回0表示鍵值不存在或設置失敗。
同時這里還有一個比較常用的命令是ttl,用於查看一個鍵還有多久時間會被刪除。返回的是剩餘時間(秒數)。
這里就不貼代碼了,有一點需要說明的是,ttl命令在鍵不存在或被刪除之後,會返回-2,在沒有為鍵設置生存時間(即永久存在,建一個鍵之後的默認情況)時返回的是-1。大家可以親自操作一把。
如果想要把一個設置過過期時間的鍵取消過期時間設置,則需要使用persist命令。
redis > SET session:27e7a id1234
OK
redis > EXPIRE session:27e7a 1200
(integer) 1
redis > TTL session:27e7a
(integer) 1092
redis > PERSIST session:27e7a
(integer) 1
redis > TTL session:27e7a
(integer) -1
這里需要說明一點的是,除了使用persist命令外,使用set、getset命令為鍵賦值,也會同時消除鍵的生存時間,如果需要可以重新使用expire命令為鍵設置生存時間。而其他對鍵的操作命令(如incr、lpush、hset、zrem)都不會影響鍵的生存時間。
expire命令的單位是秒,而且這個參數必須為整數,如果需要更精準的時間的話,需要使用pexpire命令設置,其單位為毫秒,同理也需要用pttl命令來看鍵的剩餘毫秒數。當然使用expire命令設置的過期時間也是可以用pttl看鍵的剩餘毫秒數的。
訪問限制
有時候我們會有一個需求是需要限制一個用戶對一個資源的訪問頻率,我們假定一個用戶(用IP作為判斷)每分鍾對一個資源訪問次數不能超過10次。
我們可以使用一個鍵,每次用戶訪問則把值加1,當值加到10的時候,我們設定鍵的過期時間為60秒,並且禁止訪問。這時候下次訪問發現值為10,則不讓訪問了,然後60秒後鍵被刪除,這時候再次創建鍵。這樣就可以解決,但是其實這樣時間並不精準,問題還是挺大的。
我們還有一個方案:使用隊列。前面的章節也說到了,使用列表類型可以用作隊列。
我們設定一個隊列rate.limiting.192.168.1.1(假定是這個IP),我們把每次的訪問時間都添加到隊列中,當隊列長度達到10以後,判斷當前時間與隊列第一個值的時間差是否小於60,如果小於60則說明60秒內訪問次數超過10次,不允許訪問;否則說明可以訪問,則把隊列頭的值刪除,隊列尾增加當前訪問時間。
這種方法可以比較精準的實現訪問限制,但是當限制的次數比較大時,這種方法佔用的存儲空間也會比較大。
緩存
有時候會把一些對CPU或IO資源消耗比較大的操作結果緩存起來,並設置一定時間的自動過期。比如我們設定一個微博外鏈的最熱站點緩存放於新浪微博的首頁,這樣我們不可能每次訪問都重新計算最熱的外鏈站點,所以我們可以設定兩小時更新一次。每次訪問是判斷這個鍵有沒有,如果存在則直接返回,如果沒有則通過計算把內容存入鍵中,並設定兩小時的過期時間。
然而在很多場合這種方法會很恐怖,當伺服器內存有限的時候,大量使用緩存切設置生存時間過長就會導致redis佔用太多內存,而redis有時候會把系統內存都吃掉,導致系統崩潰。但是設置時間過短又會導致緩存的命中太低。
所以我們最好的辦法是設定緩存的淘汰規則。這種方式比較適用於將redis用作緩存系統的時候比較好。
具體就是:修改配置文件中的maxmemory參數,限制redis的最大內存,當超出後會按照maxmemory-policy參數指定的策略刪除不需要的鍵,直到redis佔用的內存小於設定值。
Ⅶ 如何使用Java編程語言實現緩存數據, 並且緩存的數據的有效期為30分鍾
http://shijincheng0223.iteye.com/blog/1412128,可以看看這個
Ⅷ java 網站中session 有默認的過期時間嗎
程序中session都有一個默認的過期時間,其中tomcat中的默認時間為30分鍾,根據需要我們專可以去手動設置session的過期屬時間,以下是設置session的過期時間的三個方法:
1.在tomcat-->conf-->conf/web.xm中的<session-config>中設置:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
2.在項目的web.xml中定義:
<session-config>
<session-timeout>20</session-timeout>
</session-config>
註:20則設置過期時間為20分鍾 測試通過
3.在程序中定義:
session.setMaxInactiveInterval(30*60);
設置單位為秒,設置為-1永不過期
Ⅸ 你好,我想問一下怎麼用Java代碼限制軟體使用期限,能給詳細代碼么
獲取系統的當前時間,然後減去注冊時間 如果超過了你設定的期限時間就是過期了
Ⅹ java如何控制有效時間在8.00-24.00
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDemo{
publicstaticvoidmain(String[]args)throwsParseException
{
DateFormatdateFormat1=newSimpleDateFormat("yyyy-MM-dd");
//獲得2017年01月14日的Date對象
DatemyDate1=dateFormat1.parse("2017-1-14");
DateFormatdateFormat2=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
//獲得2017年01月14日14點20分42秒的Date對象
DatemyDate2=dateFormat2.parse("2017-01-1414:20:42");
//獲得當前時間
DatenowDate=newDate();
//獲得當前時間戳java的Timestamp格式2017-01-1414:20:42
//方法1獲取結果
TimestampnowTimestamp=newTimestamp(System.currentTimeMillis());
//方法2
Timestampnousedate=newTimestamp(nowDate.getTime());
//方法3Calendar日歷類
TimestampcTimestamp=Calendar.getInstance().getTimeInMillis();
//只取時--比較SB的方法
DateFormatdateFormat3=newSimpleDateFormat("HH");
//獲得當前幾點stringDateFormat.format(當前時間)
//返回的是string類型
intdatehh=(int)dateFormat3.format(nowDate);
if(8>=datehh<=24)
System.out.println("當前"+datehh+"點");
}
}