首頁 >後端開發 >php教程 >php能處理高併發嗎?php高並發解決方案

php能處理高併發嗎?php高並發解決方案

不言
不言原創
2018-07-19 16:20:179600瀏覽

php在執行的過程中究竟是如何處理高並發問題的,接下來我們具體的來看看關於PHP高並發的一個解決方案。

先來看看php在伺服器的執行過程:當使用者要求伺服器php檔案的時候,伺服器會對php檔案進行語法分析,其次是解析,最後才執行。當php檔案有內容輸出時,該內容會先經過伺服器的php的緩衝區(buffer),然後再透過TCP傳遞到客戶端。 (buffer其實是緩衝區,一個記憶體位址空間,主要用於儲存資料區域)

# 可見,如果使用者直接存取靜態頁面的時候,伺服器的回應時間一般會比訪問動態文件的時間短。如果我們能把使用者將要存取的動態文件先轉換為靜態文件即可加快使用者造訪頁面的速度(取得網頁的速度)。當然我們要注意靜態化的應用程式場景,頁面的靜態化主要應用於那些頁面內容不常改變的頁面。

關於靜態化,PHP的靜態化分為:純靜態和偽靜態。其中純靜態又分為:局部純靜態和全部純靜態。這裡將的是全部純靜態。

頁面靜態化其中之一的方法是藉助PHP自帶的緩衝區OB:

#下面是頁面緩衝的簡單實作

<?php
//可以根据 前端传递参数 COOKIE等进行缓存
$id = $_GET[&#39;id&#39;];
//设置缓冲文件名
$cache_name = md5(__FILE__) . &#39;-&#39; . $id . &#39;.html&#39;;
//失效时间
$life = 3600;
//判断文件是否存在以及是否过期
if (file_exists($cache_name) && (filectime($cache_name) > time() - $life)) {
    include $cache_name;
    exit;
}
//开启缓冲区
ob_start();
echo date(&#39;Y-m-d H:i:s&#39;);
$content = ob_get_contents();
ob_end_clean();
//写入到缓冲文件
file_put_contents($cache_name, $content);
echo $content;

除了上述方法以外,我們可以利用框架自帶的一些緩衝機制來實現

相關推薦:

PHP解決網站高流量高並發問題,php解決流量並發

PHP 處理高併發問題

#

以上是php能處理高併發嗎?php高並發解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn