memcaced 过期时间问题

记得之前有用过memcached,领导说把过期时间设成1个半月,改完后很奇怪,存进去就莫名其妙的取不出来,查了一下午,原来memcached的过期时间有两种设定方式

1.从add时间算起的一个以秒为单位的毫秒值 一天就是 60*60*24,n天就是60*60*24*n

2.一个unix的时间戳,即从1970年1月1日开始到失效时间为止的整形毫秒数

memcached是如何区分add的expire是那种方式呢,是根据expire的数值来判断的,如果expire大于60*60*24*30(即一个月的毫秒数),就会认为是第二种方式,如果小于等于60*60*24*30就是第一种方式

当时我设置成了60*60*24*45,很悲催的被memcached当成了1970年的2月16日过期了,这样可不就取不到了嘛,记在这里,

希望可以帮助到一些人

还有如果expire设置为0 ,就表示永久有效,不过如果memcached的空间满了,又有新的add就会把之前设为expire=0的置换掉。

参考文档:http://www.php.net/manual/zh/memcached.expiration.php 

猜你喜欢

转载自houlinyan.iteye.com/blog/2047669