MemCached过期时间的自定义

MemCached默认过期时间为30天,事实上数据更新频繁的话,30天显然长了点。自定义过期时间主有相对时间和绝对时间两种:

相对时间:时间跨度,给出过期的时间总长度
绝对时间:时间结束日,给出过期的最后期限

服务端的处理
时间处理源代码memcached.c如下:
#define REALTIME_MAXDELTA 60*60*24*30 // 定义30天的秒数
static rel_time_t realtime(const time_t exptime) {
if (exptime == 0) return 0;
if (exptime > REALTIME_MAXDELTA) { // 超过30天,是绝对时间
if (exptime <= process_started) // 小于进程启动日期
return (rel_time_t)1; //返回进程启动时间
return (rel_time_t)(exptime - process_started); // 返回进程启动之后的时间差
} else { // 不超过30天,是相对时间
return (rel_time_t)(exptime + current_time); // exptime + (tvsec - process_started)
}
}
相对时间返回的值:服务器当前时间之后的exptime - process_started秒。
绝对时间返回的值:服务器当前时间之后的(exptime -服务器当前时间) - process_started秒。
如果Client和Server时间不一致,使用绝对时间很容易导致缓存过期,所以,一般来说使用相对时间相对更加安全。

#现在前往

精选留言

MemCached,过期,间的,自定义
sample
2020-11-18
写留言
签到
投稿
QQ咨询
返回顶部