java memcache 有效期

最近在项目中使用memcache,用的客户端是memcached for java,参考客户端api得出java客户端有效期的设置方法如下:

 add

public 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);来标识一个小时后过期。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值