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缓存有几种类型内容请搜索编程界以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程界!

--结束END--

本文标题: php缓存的类型总结及用法

本文链接: https://www.lsjlt.com/news/26.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php缓存的类型总结及用法

    一个网站或者一个应用的标准流程是浏览器向应用服务器发出请求,应用服务器做一些计算和逻辑判断之后再请求数据库,数据库收到请求后在经过计算将数据返回给应用服务器,应用服务器再次计算后把数据返回给浏览器那么,随着web业务的复杂度和并发量的增加,应用服务器所做的计算
    阅读数:578 php 缓存
  • php中的标量数据类型总结

    PHP 的数据类型可以分为三大类,分别是标量数据类型、复合数据类型和特殊数据类型。其中,标量数据类型是数据结构的最基础单元,只能存储一个数据。在 PHP 中的标量数据类型分为四种,如下表所示:类型 功能boolean(布尔型) 最简单的数据类型,只有两个值:t
    阅读数:386 php 标量数据类型
  • php缓存有几种类型

    php缓存类型有5种:1、数据缓存,即数据库查询PHP缓存机制;2、页面缓存;3、时间触发缓存;4、内容触发缓存,即当插入数据或更新数据时,强制更新PHP缓存机制;5、静态缓存。
    阅读数:258 php 缓存
  • C#中缓存System.Web.Caching用法总结

    本文详细讲解了C#中缓存System.Web.Caching的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    阅读数:799 C# Sytem.Web.Caching 缓存
  • php的declare命令及用法详解

    declare是用来设定一段代码的执行指令,declare结构用于全局范围,影响到其后的所有代码,今天小编给大家普及php的declare命令及用法知识,感兴趣的朋友一起看看吧
  • php中echo、print和print_r的区别点及用法总结

    本教程操作环境:windows10系统、PHP7.1版,DELL G3电脑php中echo、print和print_r的区别是什么echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print() 只
    阅读数:155 php echo print print_r
  • python自带缓存lru_cache用法及扩展的使用

    目录1. lru_cache的使用1.1 参数详解1.2 基本用法1.3 进阶用法2. functiontools.wrap装饰器对lru_cache的影响2.1 多个装饰器装饰同一函数时的执行顺序2.2 functiontools.wra
  • PHP中最低级别的错误类型总结

    序言:php错误就是会使脚本运行不正常的情况。php的错误有很多种,包括warning、notice、deprecated、fetal error等。其中notice不叫通知,而叫通知级别的错误,warning也不叫警告,而叫警告级别的错误。错误大致分为下面几
    阅读数:398 PHP 低级错误
  • PHP基础用法讲解及phpinfo();演示

    在这个abc.php文件中写入如下代码。php phpinfo(); >你将会看到一个网页,网页内容通常,如下图所示:用中文翻译这句话给你听php phpinfo(); >刚刚我们看到这个代码已然生成了一个网页。不明白其中的意思,现在我一点一点跟大家解释。
    阅读数:854 PHP基础用法 phpinfo();
  • php桥接模式的实例用法及代码分析

    在本篇内容里小编给大家整理了一篇关于php桥接模式的实例用法及代码分析内容,有需要的朋友们可以学习下。
    阅读数:191 php 桥接模式
  • Linux系统清除缓存的方法总结

    1)缓存机制介绍在linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先bWAgBVH去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁
    阅读数:631 Linux 系统缓存
  • redis缓存的数据类型介绍

    这期内容当中的小编将会给大家带来有关redis缓存的数据类型介绍,以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Redis缓存数据类型有5种,分别是String(字符串)、List(列表)、Hash(哈希)、Set(无序
    阅读数:495 redis缓存 数据类型 edi
  • php服务缓存加速

    PHP服务加速缓存优化PHP缓存原理:当客户端请求一个PHP程序时,服务器的PHP引擎会解析改PHP程序,并将其编译为特定的操作码(Operate Code 简称 opcode),改文件是执行PHP代码后的一
    阅读数:177 php xcache php-fpm
  • php中array_pad()函数用法及实例

    在本篇文章里小编给大家整理的是一篇关于php中array_pad()函数用法及实例内容,有兴趣的朋友们可以跟着学习下。
    阅读数:218 php array_pad()
  • PHP缓存系统APCu扩展的使用

    这篇文章主要介绍了PHP缓存系统APCu扩展的使用,帮助大家更好的理解和学习使用php,感兴趣的朋友可以了解下
    阅读数:313 PHP 缓存系统 PHP APCu扩展
  • phpcms缓存使用总结(memcached、eaccelerator、shm)

    a.模板编译缓存参考文件include/global.func.php及include/template.func.php模板编译缓存的原理其实很简单,如果模板是第一次编译,则直接编译它,如果不是第一次编译,则比较模板文件($tplfile
    阅读数:516 phpcms 缓存
  • PHP屏蔽错误的方法总结

    在本篇文章里小编给大家整理分享的是一篇关于PHP屏蔽错误的方法总结内容,有兴趣的朋友们可以学习下。
    阅读数:579 PHP 屏蔽错误
  • PHP检查空值的方法总结

    在本篇文章里小编给大家整理了一篇关于PHP检查空值的方法总结内容,有兴趣的朋友们可以学习参考下。
    阅读数:552 PHP 检查空值
  • php查询类的方法总结

    在本篇文章里小编给大家整理了一篇关于php查询类的方法总结内容,对此有兴趣的朋友们可以跟着学习下。
    阅读数:376 php 查询类
  • mysql的查询缓存及innodb缓存回收机制讲解

    这篇文章主要讲解了“mysql的查询缓存及innodb缓存回收机制讲解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的查询缓存及innodb缓存回收机制讲解”吧!1 共同点 缓存都
    阅读数:648 innodb mysql