`
wanfan2008
  • 浏览: 25727 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

对PHP缓存的初识

    博客分类:
  • php
阅读更多

对于一个比较大的网站,可能会有好多数据,在这WEB时代,谁都会没事的时候去到BBS灌下水,那么多的数据,每次都要到数据库查询,在这快餐时代,用的时间肯定超出我们的忍受,在这就要用到缓存技术。
由于初学,只了解到其中的一种方式:生成cache文件.
记得在水水的一篇文章中是这样描述的:

这个就是对一些常用的而且又不是经常变动的量,保存在文本中,通过减少mysql的查询量来加快程序执行

复制代码

举一个例子,以DZ2.5f中的禁止IP功能为例:在inclulude/global.php中有这样一个函数

function ipbanned($onlineip) {

global

$timestamp$cachelost;



$cachelost .= (@include DISCUZ_ROOT.'./forumdata/cache/cache_ipbanned.php') ? '' ' ipbanned';

if(
$_DCACHE['ipbanned']) {

if(
$_DCACHE['ipbanned']['expiration'] < $timestamp) {            @unlink(DISCUZ_ROOT.'./forumdata/cache/cache_ipbanned.php');        }

return 
preg_match("/(".$_DCACHE['ipbanned']['regexp'].")/"$onlineip) ? TRUE FALSE;    }}

复制代码

当禁止一个或几个IP后,会生成这样一个文件./forumdata/cache/cache_ipbanned.php'
一般形式为


<?php$_DCACHE['ipbanned'] = array (

'expiration' => '1190563200',

'regexp' => '172\\.16\\.28\\.33|234\\.32\\.42\\.121|172\\.168\\.28\\.833|111\\.111\\.111\\.111',);?>  

复制代码

其中expiration  为最先被解禁的时间的时间戳,再看ipbanned这个函数,先把./forumdata/cache/cache_ipbanned.php'这个函数include进去,然后有这样一个IF语句
PHP代码

if($_DCACHE['ipbanned']['expiration'] < $timestamp) {            @unlink(DISCUZ_ROOT.'./forumdata/cache/cache_ipbanned.php');

复制代码

意思就是先判断当前的时间是不是超过了最先被解禁的时间,如果没有超过,则用一个正则来判断当前IP是不是在被禁的列表中,如果已经超过了,那么这个缓存文件就失效了,显然,删除之后会继续生成一个新的缓存文件。
这样就不用每次都再去读数据库了,特别是在比较大的项目中,效果是非常明显的。
对缓存,暂时只了解这么多,以后再有新的了解的时候再写吧!

分享到:
评论

相关推荐

    redis初识

    `doResult.php` 在接收到消息后,对数据进行处理,并更新缓存或者执行其他业务逻辑。 了解Redis的基本概念和操作后,开发者可以利用其特性实现各种高级功能,如分布式锁、计数器、限流、排行榜等。在设计和优化系统...

    (全)传智播客PHP就业班视频完整课程

    初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...

    php手册.zip

    总之,"PHP手册.zip"是一个为初学者准备的宝贵资源,它全面覆盖了PHP语言的各个方面,无论是初识PHP还是寻求进一步提升,都能从中获得帮助。通过深入学习和实践,你将能够熟练掌握PHP编程,构建高效、安全的Web应用...

    PHP编程起步自学教程PDF

    ##### 1.4 初识PHP - **Hello World**:通过编写第一个PHP程序来快速入门。 - **基本语法**:介绍PHP的基本语法,包括变量、常量、运算符等。 #### 二、开始篇:PHP核心概念与实践 ##### 2.1 控制结构 - **条件...

    初识PHP中的Swoole

    - **类似ORM的数据查询**:Swoole支持类似对象关系映射(ORM)的数据查询,能够将SQL操作与PHP数组、会话、缓存等无缝结合起来。 - **AppMVC分层结构**:Swoole倡导的分层结构提高了代码的可维护性和扩展性,通过...

    史上最全传智播客PHP就业班视频课,8月份视频

    初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...

    PHP学校公选课管理系统是基于微信小程序.zip

    在PHP项目中,通常会包含编译生成的文件、日志文件或者第三方库的缓存文件等,将它们添加到`.gitignore`可以避免将不必要的内容推送到版本库,保持代码仓库的整洁。 `README.md`是项目的基本介绍文件,通常包含了...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...

    MongoDB入门学习

    - **内置MapReduce**:支持对大数据集进行聚合操作,提供了一种灵活的方式来处理和分析数据。 - **GridFS支持**:能够存储和检索大文件,如图片、音频和视频等。 - **数据库结构**: - **Database**:数据库是...

    初识Laravel

    【初识Laravel】 Laravel 是一款流行的开源Web应用程序开发框架,它的设计灵感来源于其他诸如Ruby on Rails、ASP.NET MVC和Sinatra等框架,旨在提供一个优雅、高效的开发环境,让开发者能够专注于创新而非繁琐的...

    phpwind 论坛开发框架

    通常,readme.txt 文件包含了项目的基本信息、安装指南、注意事项和更新日志等内容,是初识项目的重要参考资料。 10. **upload 目录** upload 目录通常是用于存储用户上传的文件,如图片、附件等。理解其工作原理...

    TGYD_V5.1.0_秒赞_天高云淡秒赞_

    `.htaccess`文件是一个Apache服务器配置文件,它允许对网站的访问控制、URL重写、缓存设置等进行自定义,这可能是为了优化网站性能或者增强安全性。 `404.html`和`403.html`分别是自定义的错误页面,当用户尝试访问...

    thinkphp3.3

    作为ThinkPHP的最新版本,3.3版本在继承前代优点的基础上,对框架进行了诸多优化和改进,为开发者提供了更强大的开发工具。 1. **MVC模式**:ThinkPHP3.3采用Model-View-Controller架构模式,将业务逻辑、数据模型...

    DSMALL开源商城B2B2C源码V6.1.9版

    B2B2C是一种电子商务模式,其中Business-to-Business-to-Consumer,即商家对商家对消费者。在这个模型中,平台作为中介连接供应商(B)和零售商(B),零售商再将商品销售给消费者(C)。DSMALL开源商城实现了这一...

    thinkphp_5.0.2_full

    4. `README.md`:项目介绍文件,通常包含项目简介、安装方法、使用示例等信息,是初识项目的重要入口。 5. `build.php`:可能用于构建或部署项目的脚本,根据项目需求自定义,例如自动创建目录结构、生成配置文件等...

    smarty详细手册(含实例代码)[html版]

    这些例子通常包括如何定义和使用模板、如何传递数据、以及如何使用各种内置功能,例如模板继承、插件、缓存机制等。实例代码对于初学者尤其有用,因为它们提供了一种直观的方式来学习和理解Smarty的工作方式。 ...

Global site tag (gtag.js) - Google Analytics