当前位置:天才代写 > tutorial > JAVA 教程 > java中memcache有效期问题

java中memcache有效期问题

2017-11-01 08:00 星期三 所属: JAVA 教程 浏览:913

最近在项目中利用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);来标识一个小时后逾期。

 

    关键字:

天才代写-代写联系方式