2013-02-03 118 views
0

有與此類似的是關閉的,而沒有在任何有用的信息,另一個線程:https://stackoverflow.com/questions/11955822/php-file-caching-vs-cache-through-htaccessPHP緩存和緩存的.htaccess

是否有必要實施一個PHP緩存系統,如果你是通過緩存的.htaccess?這是我目前的.htaccess緩存:

<IfModule mod_headers.c> 
    # Cache Media Files 
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|mp3|mp4)$"> 
     Header set Cache-Control "public" 
     Header set Expires "Mon, 20 Apr 2015 20:00:00 GMT" 
     Header unset Last-Modified 
    </FilesMatch> 

    # Cache JavaScript & CSS 
    <FilesMatch "\.(js|css)$"> 
     Header set Cache-Control "public" 
     Header set Expires "Mon, 20 Apr 2015 20:00:00 GMT" 
     Header unset Last-Modified 
    </FilesMatch> 

    # Disable Caching for Scripts and Other Dynamic Files 
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$"> 
     Header unset Cache-Control 
    </FilesMatch> 
</IfModule> 

這個文件緩存,將打造出一個PHP緩存系統,提高我的網站更是?或者,在.htaccess中壓縮數據並使用php進行緩存會更有意義?我只是想了解哪種緩存方法可以更好地改善網站,或者如果推薦使用這兩種方法。

回答

0

你只對靜態文件進行客戶端緩存。

PHP中的緩存解決了一個完全不同的問題 - 服務器端的應用程序性能問題。所以你應該使用它,如果你的網站加載速度太慢,或者如果你導致高服務器負載。

有很多策略,如何實現服務器端緩存,這取決於你最適合你的應用程序。

例如,您可以緩存SQL查詢結果,也可以緩存整個網頁的HTML輸出。數據更改時不要忘記緩存失效。

0

對於靜態文件,您可以通過HTML標題標記和.htaccess來緩存它們。瀏覽器會將它們緩存在本地計算機中。

對於帶有.PHP的動態內容,您可以緩存小部件,對象以減少對mysql數據庫的查詢調用。您可以嘗試this one。例如,它在600秒內緩存$ products,而你的PHP只向數據庫發送1個請求。如果你有一個像500名遊客在網上,你的頁面仍然使用從首批遊客1個查詢服務500

<?php 
    include("php_fast_cache.php"); 
    // try to get from Cache first. 
    $products = phpFastCache::get("products_page"); 

    if($products == null) { 
     $products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION; 

     // set products in to cache in 600 seconds = 5 minutes 
     phpFastCache::set("products_page",$products,600); 
    } 

    foreach($products as $product) { 
     // Output Your Contents HERE 
    } 
?> 

如果您正在使用WordPress的,你可以看到所有的緩存插件,他們通過緩存PHP(文件內容或內存緩存),並通過的.htaccess

緩存您的圖片,CSS,JS,我們需要他們兩人一起將加快網站並節省帶寬/ CPU