PHP 文件缓存的性能测试
PHP常用缓存方式:
第一种,把需要缓存的数据进行处理,形成PHP可以直接执行的文件。在需要缓存数据的时候,通过include方式引入,并使用。
第二种,把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候,通过反序列化读入文件内容并复制给需要的变量,然后使用。
测试结果:
通过测试我们发现,第二种也就是serialize缓存数据的方式更加高效。(数据略去,最后提供了文章地址下载,大家可以自行测试)
原因分析:
include方式读取缓存的时候,PHP需要执行几个过程
1.读取文件
2.解析所Include的文件
3.执行,给变量赋值
而serialize序列化方式读取缓存的时候:
1.读取数据
2.反序列化数据内容
3.给变量赋值
总结分析:
第一种,include缓存的方式
优点:增加数据的保密性,和安全性,缓存内容不会被外界发现。
缺点:速度相对较慢。
用途:保存禁止系统外部得知的数据,比如web系统的设置,甚至MySQL信息等的保存
第二种,serialize序列化缓存的方式
优点:速度较快。
缺点:缓存系统文件路径一旦曝光,缓存内容会泄露。
用途:缓存最新文章,相关文章等不担心外部得知的数据的时候,可以使用这种方式。
相关推荐
-
php 文件缓存函数
复制代码 代码如下: function createHashDir($sign) { $md5 = md5($sign); if(!is_dir(MB_CACHE)) mkdir(MB_CACHE); for($i=1;$i<=4;$i++) { $dir .= $md5{$i}.'/'; if(!is_dir(MB_CACHE.$dir)) { mkdir(MB_CACHE.$dir); } } return MB_CACHE.$dir; } function setCacheFile($da
-
php文件缓存类汇总
本文实例讲述了php的文件缓存类.分享给大家供大家参考.具体分析如下: 缓存类是我们开发应用中会常用使用到的功能,下面就来给大家整理几个php文件缓存类了,各个文件缓存类写法不同,但在性能上会有区别,有兴趣测试的朋友可测试一下这些缓存类. 例1 复制代码 代码如下: <?php $fzz = new fzz_cache; $fzz->kk = $_SERVER; //写入缓存 //$fzz->set("kk",$_SERVER,10000); //此方法不与类属性想冲
-
php文件缓存类用法实例分析
本文实例讲述了php文件缓存类用法.分享给大家供大家参考.具体如下: <?php /** * 简单的文件缓存类 * */ class XZCache{ // default cache time one hour var $cache_time = 3600; // default cache dir var $cache_dir = './cache'; public function __construct($cache_dir=null, $cache_time=null){ $this-
-
PHP中文件缓存转内存缓存的方法
前言 顾名思义文件缓存转内存缓存就是将存储在文件中的数据转到内存中去,实现磁盘操作转为内存操作,这样可以大大提高数据访问速度,并能实现缓存数据的分布式部署.文件缓存与内存缓存的介绍请参考名词解释部分. 原理 文件缓存转内存缓存的原理就是把文件缓存中的数据转存到内存中,以实现数据全局共享,解决频繁加载文件和装载数据的问题,采用Memcache工具实现内存缓存数据. 实现机制与步骤 1,检查文件是否存在内存缓存,如果不存在加载缓存文件 2,加载缓存文件,并获取缓存文件中的数据 3,将缓存文件中的数据
-
php文件缓存方法总结
为大家分享很全的php文件缓存,供大家参考,具体内容如下 <?php class cache { private static $_instance = null; protected $_options = array( 'cache_dir' => "./", 'file_name_prefix' => 'cache', 'mode' => '1', //mode 1 为serialize model 2为保存为可执行文件 ); /** * 得到本类实例 *
-
ThinkPHP文件缓存类代码分享
取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧. <?php /** * @desc 文件缓存 */ class Cache{ const C_FILE = '/Runtime/'; private $dir = ''; const EXT = '.tpl'; private $filename = ''; public function __construct($dir = ''){ $this->dir = $dir; } /** * @desc 设置文件缓存
-
PHP文件缓存类示例分享
复制代码 代码如下: <?php /** * @desc 文件缓存 */ class Cache{ const C_FILE = '/Runtime/'; private $dir = ''; const EXT = '.tpl'; private $filename = ''; public function __construct($dir = ''){
-
常见php数据文件缓存类汇总
本文实例汇总了常见php数据文件缓存类.分享给大家供大家参考.具体分析如下: 数据文件缓存的做法我们常用的有php文件缓存与利用memcache来缓存数据,下面面我分别总结了memcache缓存数据与数据文件缓存.感兴趣的朋友可以参考一下. 1.对于一般的变量,把该变量变成php语言的格式,写到文件中,用时只要include这个文件就相当于加载了cache了. 2.对于array型的变量,把array转化为php语言定义array的字符串,写到文件中,用时也只要include就相当于加载了cac
-
PHP文件缓存内容保存格式实例分析
本文实例讲述了PHP文件缓存内容保存格式,对于进行PHP项目开发非常具有实用价值.分享给大家供大家参考借鉴.具体分析如下: 1.PHP文件缓存内容保存格式 PHP文件缓存内容保存格式主要有三种: (1)变量 var_export 格式化成PHP正常的赋值书写格式: (2)变量 serialize 序列化之后保存,用的时候反序列化: (3)变量 json_encode格式化之后保存,用的时候json_decode 互联网上测试结果是:serialize格式的文件解析效率大于Json,Json的解析
-
PHP Memcached + APC + 文件缓存封装实现代码
使用方法: Memcached 复制代码 代码如下: $cache = new Cache_MemCache(); $cache->addServer('www1'); $cache->addServer('www2',11211,20); // this server has double the memory, and gets double the weight $cache->addServer('www3',11211); // Store some data in the c
随机推荐
- docker连接spring boot和mysql容器方法介绍
- JavaScript实现设置默认日期范围为最近40天的方法分析
- 判断用户输入的银行卡号是否正确的方法(基于Luhn算法的格式校验)
- 详解IOS图层转场动画
- Codeigniter出现错误提示Error with CACHE directory的解决方案
- 在MAC上搭建python数据分析开发环境
- java中form以post、get方式提交数据中文乱码问题总结
- python解析模块(ConfigParser)使用方法
- Android ContentResolver使用说明
- Android实现WebView删除缓存的方法
- Android实现自动匹配关键字并且标红功能
- jquery ajax属性async(同步异步)示例
- 用ASP+XML打造留言本
- nginx禁止访问.git文件的设置教程
- 刷新时清空文本框内容的js代码
- 深入第K大数问题以及算法概要的详解
- PHP中in_array函数使用的问题与解决办法
- java异常继承何类,运行时异常与一般异常的区别(详解)
- 详细解读tornado协程(coroutine)原理
- mpvue中配置vuex并持久化到本地Storage图文教程解析
