php缓存的类型总结及用法

 更新时间:2021年12月31日 08:38:44   作者:青灯夜游  
在本篇文章里小编给大家整理了一篇关于php缓存的类型总结及用法,对此有需要的朋友们可以跟着学习下。

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

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

php缓存类型

1、数据缓存:

数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。

举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。

2、页面缓存:

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些PHP缓存机制类通常有此功能)

3、时间触发缓存:

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

4、内容触发缓存:

当插入数据或更新数据时,强制更新PHP缓存机制。

5、静态缓存:

这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。

实例扩展:

Memcached;

是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。

// 初始化
$cache = new Memcache();
$cache->pconnect(127.0.0.1, 11211);
// 写入
$cache->set(CACHE_PREFIX . $key, $value, MEMCACHE_COMPRESSED, $expire);(CACHE_PREFIX 为了避免命名冲突,最好加一个前缀,MEMCACHE_COMPRESSED一个标记,设置为0表示不压缩)
// 读取
$cache->get(CACHE_PREFIX . $key);
// 删除
$cache->delete(CACHE_PREFIX . $key);

Redis

是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。类似的安装好php扩展// 初始化$cache = new Redis();

// 初始化$cache = new \Redis();
$cache->connect(CACHE_HOSTNAME, CACHE_PORT);
// 先检查是否存在,然后写入并设置有效时间
if($cache->exists($key)){  
    $cache->delete(CACHE_PREFIX . $key);
}
$cache->set(CACHE_PREFIX . $key, serialize($value));
$cache->expire(CACHE_PREFIX . $key, $expire);
// 读取
$cache->get(CACHE_PREFIX . $key);

到此这篇关于php缓存的类型总结及用法的文章就介绍到这了,更多相关php缓存有几种类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PHP互换两个变量值的方法(不用第三变量)

    PHP互换两个变量值的方法(不用第三变量)

    相信每个刚接触PHP语言的童鞋们应该藕知道,PHP中两个变量的值互换是个很常见的做法,那么下面这篇文章我们就来介绍几个对于变量值互换的常见操作方法,文中介绍的很详细,相信对于大家的理解和学习很有帮助,下面有需要的朋友们来一起看看吧。
    2016-11-11
  • PHP冒泡算法详解(递归实现)

    PHP冒泡算法详解(递归实现)

    本文是分享了一段使用递归实现php冒泡算法的代码,并记录了使用过程终于到的问题以及解决方法,有需要的小伙伴可以参考下哦
    2014-11-11
  • CI框架源码阅读,系统常量文件constants.php的配置

    CI框架源码阅读,系统常量文件constants.php的配置

    CI框架源码阅读,系统常量文件constants.php的配置,需要的朋友可以参考一下
    2013-02-02
  • php 应用程序安全防范技术研究

    php 应用程序安全防范技术研究

    比特网专家特稿:关于PHP应用程序的安全,我们往往容易疏忽,或者采取的措施并不得当。这里给大家提供个通用防注射防跨站的小程序,仅供大家参考。
    2009-09-09
  • 攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍

    攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍

    CakePHP框架实例介绍分析。图文并茂
    2008-10-10
  • PHP易混淆函数的区别及用法汇总

    PHP易混淆函数的区别及用法汇总

    这篇文章主要介绍了PHP易混淆函数的区别及用法,实例汇总了如echo和print、include与require、!isset和empty等函数,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php简单复制文件的方法

    php简单复制文件的方法

    这篇文章主要介绍了php简单复制文件的方法,涉及php针对文件的简单判定与读写操作,需要的朋友可以参考下
    2016-05-05
  • PHP技术开发技巧分享

    PHP技术开发技巧分享

    本文档的阅读对象是有一定经验的PHP程序员,文档中将介绍在PHP开发中的一些开发技巧,希望能对读者有一定的启发。
    2010-03-03
  • Laravel SQL语句记录方式(推荐)

    Laravel SQL语句记录方式(推荐)

    下面小编就为大家带来一篇Laravel SQL语句记录方式(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • php中日期类型转换实例讲解

    php中日期类型转换实例讲解

    在本篇文章里小编给大家整理了一篇关于php中日期类型转换实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-09-09

最新评论