0
- 的Ubuntu 10.10
- 的Apache 2.2.17
- PHP 5.3.4
- APC 3.1.6
- 內存緩存 3.0。 5
<?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個不同的請求。
調試技巧 - 檢查http訪問日誌,或製作一些 – goat 2011-01-12 05:04:58
apache error_log缺乏信息,PHP設置爲最高級別的調試輸出。 – 2011-01-12 05:19:34