程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java中memcache有效期問題

java中memcache有效期問題

編輯:關於JAVA

最近在項目中使用memcache,用的客戶端是memcached for java,參考客戶端api得出java客戶端有效期的設置方法如下:

add  
      
ublic boolean add(java.lang.String key,  
                  java.lang.Object value,  
                  java.util.Date expiry)  
      
   Adds data to the server; the key, value, and an expiration time are specified.  
      
   Parameters:  
       key - key to store data under  
       value - value to store  
       expiry - when to expire the record   
   Returns:  
       true, if the data was successfully stored

api中沒有詳細介紹有效期參數,翻譯可得expiry - 記錄什麼時候到期,故在項目中就直接傳了一個當前時間+1小時的一個date類型,結果呢?

結果就是導致取不到值,google一把,說是默認有效期為30天,超過後就不往memcache中放了,由此猜想可能是這個date參數不是這麼用的,翻看了下客戶端源碼:

expiry.getTime() / 1000L
String cmd = (new StringBuilder()).append(cmdname).append(" ").append(key).append(" ").append(flags).append(" ").append(expiry.getTime() / 1000L).append(" ").append(val.length).append("\r\n").toString();

根據memcache api  有效期有一個數值型時間長度值,意思就是多少毫秒後過期。

明白了吧,java中應該用new Date(3600000L);來標識一個小時後過期。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved