MC set 有效期限制 最大为30天

今天遇到mc的一个问题 我在设置某个值 把有效期设成 31天 结果读不出结果,但是明明写是成功的
检查了 代码半天 也以为是 缓存配置的问题 测试了半个来小时
发现均没有问题
后面 尝试了是不是 key 的长度?
值的问题
终于 测试到了 有效时间 这个
后面 尝试了是不是 key 的长度?
值的问题
终于 测试到了 有效时间 这个
但是 超过 30天 就有问题了
写成功了 那边返回的状态是 写成功
但是 read 不了
亲 是不是 mc 缓存最大的有效期是 30天啊
超过就直接丢弃
 
遇到这个问题,也算是教训了,为什么不认真读读mc源码啊
 
写道

mc set() 的 expire 参数描述:

Expiration time of the item. If it's equal to zero, the item will never > expire. You can also use Unix timestamp or a number of seconds starting > from current time, but in the latter case the number of seconds may not > exceed 2592000 (30 days).


设置过期时间确实不能超过30天,由于mc的过期机制使用lazy expiration,内部本身是不会监视数据是否过期,当在 get 的是否检查是否过期,所以设置一个不合法的过期时间很能回导致读取时拿不到数据;

怎么破? 目前只能将 expire 设置为0了,但是不能保证真正的永不过期,因为它可能会为了给其他项分配空间而被删除。
 

你可能感兴趣的:(PHP,memcached)