/ APC

被Alternative PHP Cache (APC)坑了

一个apache下的两个站点,一个是正式用的,另一个是测试版本,数据库相互独立。

前几天发现一个很奇怪的BUG,测试版本的某个统计数据不正确,这个统计数据是通过sql查询得来的,并且用APC缓存10分钟,而正式版本的统计却是正确的。

我直接在测试版本的mysql中查询,得到了正确的数据,去apc_fetch缓存的值,不正确。

于是尝试apc_clear_ca​che清空缓存,刷新之后发现数据正确了。

又过了10分钟之后,直接刷新页面,发现数据又错误了,查了半天没发现代码哪里有问题,一直拖到今天。

今天同时开了正式用的和测试用的两个站点,突然发现两个统计数据是一样的(因为两个数据库互相独立,所以统计数据不一定会相同),我就想会不会是APC缓存是共享的?

于是测试了下,在正式站点下新建一个php文件,apc_add(‘test’,’123′),然后在测试站也新建一个php,echo apc_fetch(‘test’),结果输出了123,验证了我之前的猜测。

被Alternative PHP Cache (APC)坑了
Share this