• 文件缓存、内存缓存与静态化页面的取舍


    静态和伪静态都是各有优缺点的
    静态的好处是你生成了html文件,那么访问量高的时候,服务器的I/O是一个瓶颈。但数据库的压力小了,而且更新的时候,需要重新生成。

    而伪静态刚I/O的瓶颈比静态的要小,但是数据库的压力比较大。

    如果访问量和并发比较大的话,就使用静态吧。

    ================

    静态文件分发、分布式非常容易,使用CDN很方便,一般不过期,海量流量应付很轻松,只需加CDN带宽即可。

    使用memcache这样的内存缓存一般只缓存部分时间不敏感、业务不复杂的数据。以空间换速度。memcache对数据过期时间的控制能力较好。

    文件缓存:一般情况下磁盘IO才是主要压力,除非SQL足够复杂,耗费较多CPU。这个时候也可以交给MySQL的查询缓存解决。文件缓存常见于压力不大的站点或者开源程序使用,具有适应性好、对运行环境要求低的特点。

    =================

    我来说几句废话,楼主先把缓存的概念理解透再谈缓存。

    缓存是什么,缓存就是把低速设备上的文件放入高速设备,把从离终端远的位置移到靠近终端的位置。
    over,就是这么简单。

    理解了概念,你就不会困惑了。不理解请参考3L。3L就是对这个概念的阐述。
    有了CDN,静态访问不是问题,再加上本地缓存,效果更好。

    一切快慢都只是相对的,如果你认为访问和操作内存就是最快最好的,天下无敌的,那又错了。
    一方面,还有比内存更快的。现在基于JAVA的LMAX架构考虑的深度已经到了CPU的高速缓存这一层了,访问和操作内存,慢!得想办法能直接访问高速缓存,并避免并发争夺问题。另一方面,还有某些场合下比内存访问更合适的,如CDN。当然这个例子可能和主题关系不大。只是说明一切都是相对的。

    =======================

    文件缓存:
    还是要请求PHP,由PHP来读取硬盘上缓存的文件。有时候缓存的是整个页面的HTML,有时候只是缓存部分数据或者变量值。
    静态化:
    不需要PHP来处理,直接由web server读取文件内容并输出。静态化文件的内容只能是HTML代码或者SHTML代码。好处是性能和分布式上的优势,但是没有PHP来处理灵活。
    也有杂合的,比如使用伪静态来统一URL,然后以一定策略来决定是访问PHP还是直接HTML。

    =======================

    如果纠结,推荐一种方案:伪静态和真静态结合。
    如果你看过wordpress的.htaccess文件,可以发现这样的伪静态规则

    1. # BEGIN WordPress
    2. <IfModule mod_rewrite.c>
    3. RewriteEngine On
    4. RewriteBase /
    5. RewriteRule ^index.php$ - [L]
    6. RewriteCond %{REQUEST_FILENAME} !-f
    7. RewriteCond %{REQUEST_FILENAME} !-d
    8. RewriteRule . /index.php [L]
    9. </IfModule>
    10. # END WordPress
    复制代码

    那如何伪静态+真静态呢?
    如果访问压力大,则生成HTML到指定位置,在重写规则里!-f条件不成立,这个时候就是真静态;
    如果这个页面访问数量少(比如是去年的新闻页),这个时候真静态意义已经不大了,这个时候可以通过管理后台直接删除这个HTML。这个时候重写规则里!-f条件成立,由PHP分析请求的URL,并输出HTML代码。对用户透明,感觉不到区别。

    优点:可伸缩性、节省硬盘、性能和灵活性的最大化
    缺点:对静态页面要求内容时效不敏感、要求能够启用重写规则

  • 相关阅读:
    Swift 泛型和闭包结合使用
    Swift中避免在多个文件中重复import相同的第三方包
    iOS AVAudioPlayer播放音频时声音太小
    python中装饰器的原理以及实现,
    python-网易云简单爬虫
    python模拟SQL语句操作文件
    python学习第二天-基本数据类型常用方法
    python学习第一天-语法学习
    iOS 出现错误reason: image not found的解决方案
    Swift as as!和as?的区别
  • 原文地址:https://www.cnblogs.com/jamesbd/p/3884411.html
Copyright © 2020-2023  润新知