今天发现线上有个问题,线上一个图片域名,在前端已经加了CDN缓存,不落缓存,则用PHP动态实现图片缩放,但经PHP处理过的图片输出后,每次都要从后端读取,后端服务器压力瞬间增加,经分析,PHP中没有作304的处理, HTTP的原理是这样的,每次请求到服务器后,服务端检测有没有修改,如没有修改,可以直接返回一个304的状态码,这样就用客户端的缓存了,CDN的原理就是如此,如果设置了304,就会将相应的URL进行缓存起来; 相关代码如...
系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache)对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式。DATA_CACHE_SUBDIR=>true 还可以设置哈希目录的层次,例如DATA_PATH_LEVEL=>2 就可以根据缓存标识的哈希自动创建多层子目录来缓存...
本文实例讲述了PHP使用redis实现统计缓存mysql压力的方法。分享给大家供大家参考,具体如下:<?phpheader("Content-Type:text/html;charset=utf-8");include lib/mysql.class.php;$mysql_obj = mysql::getConn();//redis $redis = new Redis();$redis->pconnect(127.0.0.1, 6379);if(isset($_SERVER[HTTP_REFERER])){$url_md5 = md5($_SERVER[HTTP_REFERER]);}$adve_key = adve; $adve_key_exists = adve_exists;if(!$redis->exist...
本文实例讲述了Yii清理缓存的方法。分享给大家供大家参考,具体如下: html:代码如下:ClearCache js:function clearCache() {$.get(../eng/index.php?r=site/clear&+new Date().getTime(),function(){alert(Clear eng cache ok.);}); }php:public function actionClear() {Yii::app()->cache->flush(); }希望本文所述对大家基于Yii框架的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为保存为可执行文件); /*** 得到本类实例* * @return Ambiguous*/public static function getInstance(){if(self::$_instance === null){self::$_instance = new self();}return self::$_insta...
本文实例讲述了Yii开启片段缓存的方法。分享给大家供大家参考,具体如下: 1、main.php文件中的components中添加:cache=>array(class=>system.caching.CFileCache, ),2、在view中哪里需要缓存就添加这句话<?php if($this->beginCache(aaa,array(duration=>3360,varyByParam=>array(page),dependecy=>array(class=> system.caching.CDbCacheDependency,sqll=>select count(server) from {{game_serve}} ,//设置依赖缓存,如果这个语...
本文实例讲述了Laravel使用Caching缓存数据减轻数据库查询压力的方法。分享给大家供大家参考,具体如下: 昨天想把自己博客的首页做一下缓存,达到类似于生成静态页缓存的效果,在群里问了大家怎么做缓存,都挺忙的没多少回复,我就自己去看了看文档,发现了Caching这个部分,其实之前也有印象,但是没具体接触过,顾名思义,就是缓存了,那肯定和我的需求有点联系,我就认真看了看,发现的确是太强大了,经过很简单的几个步骤,我就改装好了首页...
本文实例讲述了ThinkPHP静态缓存简单配置和使用方法。分享给大家供大家参考,具体如下: 根据ThinkPHP官方手册:ThinkPHP内置了静态缓存类,通过静态缓存规则定义来实现了可配置的静态缓存。 启用静态缓存: ThinkPHP官方手册写道 要使用静态缓存功能,需要开启HTML_CACHE_ON 参数,并且在项目配置目录下面增加静态缓存规则文件 htmls.php,两者缺一不可。否则静态缓存不会生效。 在配置文件Conf\config.php的array()中加上:HTML_...
本文实例讲述了Yii2 assets清除缓存的方法。分享给大家供大家参考,具体如下: use vendor\myVendorName\myPackageName\assets\AppAsset; AppAsset::register($this);在配置文件中添加: components => [assetManager => [linkAssets => true,], ]刷新后就可以清除缓存 更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法...
有时候我们不希望浏览器使用缓存加快网页的显示,尤其是那些论坛之类的频繁更新内容的网页,在网上有说可以使用下面的方法来屏蔽缓存,但是我试了效果不好。 某日我突发奇想,找到了一种在任何情况下都会显示最新的网页内容的方法,描述如下: 请将网页的链接改为: http://xxx.yyy.zzz/page.php?rand=XXXXXXX 其中http://xxx.yyy.zzz/page.php是你的网页,rand是一个你不会用到的Qurey字串,XXXXXXX是一个随机字串。 ...
下面这个PHP的代码实例,功能是帮助用户重置密码,requestResetPassword是接收用户重置密码的请求并且做了相应的检查。为了更好的复用性,我将重置密码的操作单独分配到一个新的resetPassword的函数,更改完密码的后再调用sendEmail向用户发送一封通知邮件。 代码如下:/** * 用户请求重置密码的接收器 */function requestResetPassword() { //检查用户是否存在 if( !checkUserExists( $_GET['userid'] ) ) { exit('抱...
有时候我们不希望浏览器使用缓存加快网页的显示,尤其是那些论坛之类的频繁更新内容的网页,在网上有说可以使用下面的方法来屏蔽缓存,但是我试了效果不好。 某日我突发奇想,找到了一种在任何情况下都会显示最新的网页内容的方法,描述如下: 请将网页的链接改为: http://xxx.yyy.zzz/page.php?rand=XXXXXXX 其中http://xxx.yyy.zzz/page.php是你的网页,rand是一个你不会用到的Qurey字串,XXXXXXX是一个随机字串。 ...
前言:在PHP+MySQL架构的站点中,本文重点从MySQL的角度去分析如何使Discuz!论坛(或者类似的PHP+MySQL架构的程序)应对大访问量。同时给出一些使用Memcache去减轻MySQL压力的建议。其中很多数据是个人测试的结果,如有不同意见,敬请留言告之。另外由于个人思维的问题,行文比较跳跃,特此声明! 系统分析:单纯的从MySQL的角度出发,单台MySQL的数据库负载到每天上亿次的操作(每秒大概1100次MySQL操作,然后乘以86400)应该不是...
前言 顾名思义文件缓存转内存缓存就是将存储在文件中的数据转到内存中去,实现磁盘操作转为内存操作,这样可以大大提高数据访问速度,并能实现缓存数据的分布式部署。文件缓存与内存缓存的介绍请参考名词解释部分。 原理 文件缓存转内存缓存的原理就是把文件缓存中的数据转存到内存中,以实现数据全局共享,解决频繁加载文件和装载数据的问题,采用Memcache工具实现内存缓存数据。 实现机制与步骤 1,检查文件是否存在内存缓存,如...
说明: 1,在服务器缓存了压缩过的文件,再次访问减少再压缩时间,降低CPU占用率。 2,通过设置客户端文件缓存时间,降低再次请求次数,可降低85%以上。 3,图片因为已经是压缩格式,只是设置客户端缓存时间,不做压缩处理。 使用方法: 1,服务器必须支持gzip,Rewrite功能。 2,在.htacess文件的“RewriteBase /”下面一行添加下面的代码,见图 RewriteRule (.*.css$|.*.js$|.*.jpg$|.*.gif$|.*.png$) gzip.php?$1 [L] 3,上传gz...