Memcache缓存设置的缓存时间最久是多少呢?有说30天的,有说永久的。
查一下手冊
通俗的话来讲就是说,如果设置为0,则永不过期,但是它可能会因为为了给其他项分配空间而被删除;如果用秒来设置过期时间,则最久设置的时间是30天,即使你设置了25920001秒,它只是给你保留259200秒;如果用时间戳设置的话,那就随意了,没有限制。
Memcache源代码中计算过期时间,realtime 函数
static rel_time_t realtime(const time_t exptime)
{
/* no. of seconds in 30 days - largest possible delta exptime */
if
(
exptime
==
0
)
return
0
;
/* 0 means never expire */
//如果想保存30天以上则需要传递绝对时间戳,如果不传递绝对
时间戳而是30天的秒数则会导致马上过期
//如果不保存30天以上则直接传递过期秒数即可
/** #define REALTIME_MAXDELTA 60*60*24*30 */
if
(
exptime
>
REALTIME_MAXDELTA
)
{
//如果小于服务器启动时间戳则马上过期