代码:
<?php
$cache = new Memcache();
$cache->connect('localhost', 11211);
$num = 1;
if (($a = $cache->get('key')) !== false) $num = $a;
$num += 1;
$cache->set('key', $num);
echo $num;
输出(在Apache重新启动后连续三次刷新):
2
然后
5
然后
8
问题:为什么?我期待2
,3
,4
。第一页似乎已检出,但后续页面加载总是比我实际添加的数字增加三倍。换句话说,如果我写
$num += 10;
然后数字出现11
,41
,71
。我究竟做错了什么?我是否错误配置了APC或Memcache?我相当肯定APC是问题,但如果我确定问题是什么,那我就不会问了!
更新:当发生这种情况时,apache access_log会针对每个页面加载显示3个不同的请求。
答案 0 :(得分:1)
您使用什么方法发出请求?我观察到一些firefox插件(如firebug)有时会因某种原因导致页面被多次加载。可能值得尝试使用其他浏览器,或者只是wget或curl来发出请求,看看它是否仍会产生相同的结果。