首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php缓存和.htaccess缓存

php缓存和.htaccess缓存
EN

Stack Overflow用户
提问于 2013-02-03 12:41:09
回答 2查看 5.4K关注 0票数 0

还有一个与此类似的线程被关闭,其中没有任何有用的信息:https://stackoverflow.com/questions/11955822/php-file-caching-vs-cache-through-htaccess

如果你通过.htaccess进行缓存,有必要实现一个php缓存系统吗?这是我目前的.htaccess缓存:

代码语言:javascript
复制
<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缓存会更有意义?我只是想知道哪种缓存方法会更好地改善一个网站,或者两者都使用是被推荐的。

EN

回答 2

Stack Overflow用户

发布于 2013-04-28 13:35:09

对于静态文件,你可以通过Headers标签来缓存它们,.htaccess浏览器会在本地机器上缓存它们。

对于具有.PHP的动态内容,您可以缓存小部件、对象,以减少对mysql数据库的查询调用。

你可以试试this one。例如,它在600秒内缓存$products,而您的PHP只向数据库发送一次请求。如果你有500个在线访问者,你的页面仍然使用来自第一个访问者的1个查询来服务500个访问者。

代码语言:javascript
复制
<?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

票数 1
EN

Stack Overflow用户

发布于 2013-02-03 17:01:57

您只为静态文件执行客户端缓存。

PHP中的缓存解决了一个完全不同的问题--应用程序的服务器端性能问题。因此,如果您的站点加载速度太慢或导致服务器负载过高,则应该使用它。

如何实现服务器端缓存有许多策略,最适合您的应用程序取决于您。

例如,您可以缓存SQL查询结果,也可以缓存整个网页的HTML输出。当您的数据发生更改时,不要忘记缓存失效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14669559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档