对于一个比较大的网站,可能会有好多数据,在这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是不是在被禁的列表中,如果已经超过了,那么这个缓存文件就失效了,显然,删除之后会继续生成一个新的缓存文件。
这样就不用每次都再去读数据库了,特别是在比较大的项目中,效果是非常明显的。
对缓存,暂时只了解这么多,以后再有新的了解的时候再写吧!
分享到:
相关推荐
`doResult.php` 在接收到消息后,对数据进行处理,并更新缓存或者执行其他业务逻辑。 了解Redis的基本概念和操作后,开发者可以利用其特性实现各种高级功能,如分布式锁、计数器、限流、排行榜等。在设计和优化系统...
初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...
初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...
初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...
总之,"PHP手册.zip"是一个为初学者准备的宝贵资源,它全面覆盖了PHP语言的各个方面,无论是初识PHP还是寻求进一步提升,都能从中获得帮助。通过深入学习和实践,你将能够熟练掌握PHP编程,构建高效、安全的Web应用...
##### 1.4 初识PHP - **Hello World**:通过编写第一个PHP程序来快速入门。 - **基本语法**:介绍PHP的基本语法,包括变量、常量、运算符等。 #### 二、开始篇:PHP核心概念与实践 ##### 2.1 控制结构 - **条件...
- **类似ORM的数据查询**:Swoole支持类似对象关系映射(ORM)的数据查询,能够将SQL操作与PHP数组、会话、缓存等无缝结合起来。 - **AppMVC分层结构**:Swoole倡导的分层结构提高了代码的可维护性和扩展性,通过...
初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...
在PHP项目中,通常会包含编译生成的文件、日志文件或者第三方库的缓存文件等,将它们添加到`.gitignore`可以避免将不必要的内容推送到版本库,保持代码仓库的整洁。 `README.md`是项目的基本介绍文件,通常包含了...
初识css 类选择器 id选择器 html选择器 8-13 3.通配符选择器 父子选择器 8-13 4.选择器使用细节 块元素?托心谠? 盒子模型 盒子模型经典应用① 8-13 5.盒子模型经典应用② 作业布置 8-15 1.div+css作业评讲① 8-15 ...
- **内置MapReduce**:支持对大数据集进行聚合操作,提供了一种灵活的方式来处理和分析数据。 - **GridFS支持**:能够存储和检索大文件,如图片、音频和视频等。 - **数据库结构**: - **Database**:数据库是...
【初识Laravel】 Laravel 是一款流行的开源Web应用程序开发框架,它的设计灵感来源于其他诸如Ruby on Rails、ASP.NET MVC和Sinatra等框架,旨在提供一个优雅、高效的开发环境,让开发者能够专注于创新而非繁琐的...
通常,readme.txt 文件包含了项目的基本信息、安装指南、注意事项和更新日志等内容,是初识项目的重要参考资料。 10. **upload 目录** upload 目录通常是用于存储用户上传的文件,如图片、附件等。理解其工作原理...
`.htaccess`文件是一个Apache服务器配置文件,它允许对网站的访问控制、URL重写、缓存设置等进行自定义,这可能是为了优化网站性能或者增强安全性。 `404.html`和`403.html`分别是自定义的错误页面,当用户尝试访问...
作为ThinkPHP的最新版本,3.3版本在继承前代优点的基础上,对框架进行了诸多优化和改进,为开发者提供了更强大的开发工具。 1. **MVC模式**:ThinkPHP3.3采用Model-View-Controller架构模式,将业务逻辑、数据模型...
B2B2C是一种电子商务模式,其中Business-to-Business-to-Consumer,即商家对商家对消费者。在这个模型中,平台作为中介连接供应商(B)和零售商(B),零售商再将商品销售给消费者(C)。DSMALL开源商城实现了这一...
4. `README.md`:项目介绍文件,通常包含项目简介、安装方法、使用示例等信息,是初识项目的重要入口。 5. `build.php`:可能用于构建或部署项目的脚本,根据项目需求自定义,例如自动创建目录结构、生成配置文件等...
这些例子通常包括如何定义和使用模板、如何传递数据、以及如何使用各种内置功能,例如模板继承、插件、缓存机制等。实例代码对于初学者尤其有用,因为它们提供了一种直观的方式来学习和理解Smarty的工作方式。 ...