还有一个与此类似的线程被关闭,其中没有任何有用的信息:https://stackoverflow.com/questions/11955822/php-file-caching-vs-cache-through-htaccess
如果你通过.htaccess进行缓存,有必要实现一个php缓存系统吗?这是我目前的.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缓存会更有意义?我只是想知道哪种缓存方法会更好地改善一个网站,或者两者都使用是被推荐的。
发布于 2013-04-28 13:35:09
对于静态文件,你可以通过Headers标签来缓存它们,.htaccess浏览器会在本地机器上缓存它们。
对于具有.PHP的动态内容,您可以缓存小部件、对象,以减少对mysql数据库的查询调用。
你可以试试this one。例如,它在600秒内缓存$products,而您的PHP只向数据库发送一次请求。如果你有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 (文件或Memcache )缓存你的内容,并通过.htaccess缓存你的图像,css,js
我们需要同时使用这两种技术,这样可以提高站点速度并节省带宽/ CPU
发布于 2013-02-03 17:01:57
您只为静态文件执行客户端缓存。
PHP中的缓存解决了一个完全不同的问题--应用程序的服务器端性能问题。因此,如果您的站点加载速度太慢或导致服务器负载过高,则应该使用它。
如何实现服务器端缓存有许多策略,最适合您的应用程序取决于您。
例如,您可以缓存SQL查询结果,也可以缓存整个网页的HTML输出。当您的数据发生更改时,不要忘记缓存失效。
https://stackoverflow.com/questions/14669559
复制相似问题