Memcached缓存时间比实际过期时间长的问题

Author: ChinSyun Pang
Weibo: arthinking_plus
Posted in: http://www.itzhai.com

查看Memcached服务器端源码,发现MC服务器端判断缓存的有效时间是按照如下方法的:

计算服务器启动后多少秒该key会失效

1、如果是一个超过30天的时间,则认为是一个Unix时间戳:

失效时间 = 设置的过期时间- 设置的过期时间距离memcached服务器启动时间的秒数;

2、如果是一个30天内的有效时间,则认为是一个时间长度:

失效时间 = 设置的过期时间长度 + current_time

具体可以参考这里

如果MC服务器启动之后,对系统时间进行了调整,那么第一种情况就会得到不准确的有效时间了

相关bug