过期时间有两种格式:
1. 相对时间:多长时间,给出过期的时间长度
2. 绝对时间:到期时间,给出过期的最后期限
服务端的处理
时间处理源代码【memcached.c】如下:
#define REALTIME_MAXDELTA 60*60*24*30
// 定义30天的秒数
static rel_time_t realtime(const time_t exptime) {
}
相对时间时,返回的值是:服务器当前时间之后的exptime - process_started秒
绝对时间时,返回的值是:服务器当前时间之后的(exptime -服务器当前时间) - process_started秒
可以看到,如果Client和Server时间不一致,使用绝对时间很容易导致缓存过期。
所以使用相对时间是比较安全的做法。