php apc快取以及與redis的對比
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-08-08 09:19:38
APC簡介APC的全稱為Alternative PHP Cache, 是一款開源的php插件,用來對php的程式碼或使用者資料進行快取。 APC
對php程式碼的快取apc可以去掉php動態解析以及編譯的時間,php腳本可以執行的更快。下面這張圖很好的說明了為什麼了apc可以讓php腳本運行得更快。
PHP是一個動態腳本語言,所以為了讓使用者在瀏覽器中看到頁面內容,伺服器必須解析php程式碼從而產生想用的html程式碼。從上面的圖中可以看出,在沒有apc的時候,用戶對php頁面的每一次請求,伺服器都需要進行對php進行解析,編譯以及執行,但是很多時候,只要php程式碼沒有發生更改,php的執行邏輯就不會改變,也就是說解析以及編譯的過程就可以省略,直接執行然後將結果回傳即可。這就是apc的工作,apc快取php的可執行程式碼,從而去掉了解析以及編譯的過程,加快了php腳本的執行速度。 APC
對用戶資料的快取以及除了緩存php程式碼外,apc還可以進行用戶資料的緩存,但是由於apc的容量很少,所以快取的資料最好是那些很長時間都不變的數據,不變的單位應以天位單位。所以如果資料是變化很頻繁的且資料量也比較大,那就不要使用apc了,可以使用memcache或redis。 下面是一個apc和redis的對比測試實驗,看看apc和redis的效率對比。 function getTimeStamp() {
$timestr = microtime();
$timestrary = explode(' ', $timestr);
$result = intval($timestrary[1])*1000 + intval(floatval($timestrary[0])*1000);
return $result;
}
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$key = 'key';
$value ='value';
$redis->set($key, $value);
apc_store($key, $value, 1);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
$result = apc_fetch($key);
}
$cost = getTimeStamp() - $begin;
var_dump($cost);
$begin = getTimeStamp();
for($i = 0 ; $i < 100000 ; $i = $i +1) {
$result = $redis->get($key);
}
$cost = getTimeStamp() - $begin;
var_dump($cost);
$redis->close();
登入後複製
都是簡單的取資料操作,分別進行10萬次,單位是毫秒。最後的運行結果redis10萬次讀在4-5秒之間,而apc得10萬次讀只有50毫秒左右。可以看到如果是簡單的快取一些數據,而這些數據不會變化且命中的話,apc還是能帶來一定的效率提升的。 安裝apc時會有一個apc.php的頁面可以透過這個頁面查看apc的命中。如下圖
APC的設定設定的範例如下:extension= apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=64M ; apc内存的大小,最后的大小需要乘上segments的数量,所以这里一共为apc分配64M
apc.ttl=7200
apc.user_ttl=7200
apc.enable_cli=1 ; 这个如果不开启,则只可以在网页上进行apc操作,不能通过cli进行apc操作
登入後複製
參考http://www.inmotion -with-apc http://bbs.phpchina.com/thread-202432-1-1.html
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了php apc快取以及與redis的對比,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31