• PHP 缓存详解


    为什么要使用缓存

    一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,应用服务器做一些计算和逻辑判断之后再请求数据库,数据库收到请求后在经过计算将数据返回给应用服务器,应用服务器再次计算后把数据返回给浏览器

    那么,随着web业务的复杂度和并发量的增加,应用服务器所做的计算和逻辑处理越来越多,而应用服务器的资源是有限的,且数据库每秒接受并处理请求的次数也是有限的。为了在有限的资源提供尽可能多的吞吐量,就是减少计算量,缩短请求流程(减少网络I/O或硬盘I/O)。这时,就用到了缓存(Cache)

    缓存三大要素

    1. 命中率

    百度百科:终端用户访问加速节点时,如果该节点有缓存住了要被访问的数据时就叫做命中,如果没有的话需要回原服务器取,就是没有命中。取数据的过程与用户访问是同步进行的,所以即使是重新取的新数据,用户也不会感觉到有延时。 命中率=命中数/(命中数+没有命中数), 缓存命中率是判断加速效果好坏的重要因素之一

    2. 更新缓存策略

    一般更新�缓存厕策略有三种:

    FIFO,最先被缓存的数据,在缓存空间不足的情况下会被先清除

    LFU,最少使用的元素会被清除,在缓存空间不足的情况下会先清除最少使用的数据,即hit值最好的元素

    LRU,最近最少使用的元素会被清除,当缓存空间不足时,最近最少使用的元素将被清除

    3. 缓存最大数据量

    换存方式

    1. 文件缓存

    文件缓存就是把缓存数据存储到文件系统即硬盘中。文件缓存优点

    磁盘容量大,价格低

    磁盘比内容更稳定可靠,断电后不会丢失数据,存储也比较简单

    固态硬盘的读写速度也比较快

    容易扩展

    文件缓存的开源产品Secache,用PHP实现的key-value数据库,安装键值对的方式存储到文件

    下载地址:https://code.google.com/archive/p/secache/downloads

    特点:

    PHP实现,无需任何扩展

    使用LRU算法自动清除过期内容

    最大支持1GB缓存文件

    使用hash定位,读取快

    使用方法,示例代码testSecache.php

    目录结构:

    运行结果

    2. 客户端缓存

    客户端缓存或Web缓存根据请求保存输出内容的副本,例如HTML页面,图片,文件等。当下一次相同的请求过来时,不需要再向服务器发送请求,而是直接使用这些副本。这些副本是浏览器实现的,将服务器返回的这些资源保存在本地硬盘上。

    客户端换出示例代码

    访问index.php页面

    点击aaa超级连接,显示测试数据。

    在当前页面点击浏览器的返回按钮到,在点击aaa超链接。不会再向服务器发送请求,而是直接调用存储在本地的缓存页。即使改变webcache.php中的echo 内容。浏览器也不会重新读取服务器上的资源。

    只有当缓存到期,缓存被清除或是强制刷新页面,才会获取最新服务器数据

    原文地址:https://www.jianshu.com/p/7665175d0ddd
  • 相关阅读:
    usaco-3.2-butter-passed
    usaco-3.2-msquare-pass
    usaco-3.2-ratios-pass
    usaco-3.2-spin-pass
    usaco-3.2-kimbits-pass
    usaco-3.2-fact4-pass
    usaco-3.1-stamps-pass
    usaco-3.1-contact-pass
    git操作
    spring 用到的设计模式
  • 原文地址:https://www.cnblogs.com/lovellll/p/10409507.html
Copyright © 2020-2023  润新知