`
mengdejun
  • 浏览: 408346 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PHP常见缓存技术分析

    博客分类:
  • Doc
阅读更多

PHP 常见缓存技术分析
在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。

普遍使用的缓存技术

数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件
中,以后同样的查询结果就直接从缓存文件中获得。

页面缓存:
每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)

内存缓存:
在里就不介绍了,不是本文所要讨论的,只简单提一下:
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。

以上的缓存技术虽然能很好的解决频繁查询数据库的问题,但其缺点在在于数据无时效性,下面我给出我在项目中常用的方法:

时间触发缓存:
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。
设定时间内不去判断数据是否要更新,过了设定时间再更新缓存。以上只适合对时效性要求不高的情况下使用 ,否则请看下面。

内容触发缓存:
当插入数据或更新数据时,强制更新缓存。

在这里我们可以看到,当有大量数据频繁需要更新时,最后都要涉及磁盘读写操作。怎么解决呢?我在日常项目中,通常并不缓存所有内容,而是缓存一部分不经常变的内容来解决。但在大负荷的情况下,最好要用共享内存做缓存系统。

到这里PHP缓存也许有点解决方案了,但其缺点是,因为每次请求仍然要经过PHP解析,在大负荷的情况下效率问题还是比效严重,在这种情况下,也许会用到静态缓存。

静态缓存
这里所说的静态缓存是指HTML缓存,HTML缓存一般是无需判断数据是否要更新的,因为通常在使用HTML的场合一般是不经常变动内容的页面。数据更新的时候把HTML也强制更新一下就可以了。

其实一个缓存系统涉及的问题是比较多的,我在这里只介绍一下我平时的缓存思路,并没有介绍利用软件来实现缓存和写出具体代码。
如果您有什么好的解决方案也请在下面提出,让我们一起互相探讨。

 

转自:http://happymen001.iteye.com/blog/756530

分享到:
评论

相关推荐

    PHP常见缓存技术分析(cache)

    **PHP常见缓存技术分析(cache)** 在Web开发中,缓存技术是提升系统性能的关键因素之一。PHP作为广泛使用的服务器端脚本语言,提供了多种缓存策略以优化应用程序的运行速度。本文将深入探讨PHP中的常见缓存技术,...

    PHP中常见的缓存技术实例分析

    在PHP编程中,缓存技术是一种提升应用程序性能的重要手段,尤其在处理大量数据库查询或计算密集型任务时。本文将详细解析PHP中的缓存技术,包括其原理、优点以及一些实例,以帮助开发者理解如何有效地利用缓存来优化...

    PHP缓存技术详解(经典)

    ### PHP缓存技术详解 #### 引言 随着互联网技术的迅速发展,用户对网站响应速度的要求越来越高。作为一款流行的Web开发语言,PHP凭借其强大的功能和灵活性在网站建设中占据了重要地位。然而,在处理大量数据时,...

    php项目系统分析

    例如,避免全局变量、减少数据库查询次数、使用缓存技术(如Memcached或Redis)、利用OPcache加速PHP解释器等。 7. **安全实践**:在PHP项目中,安全是不可忽视的一环。应防范SQL注入、XSS跨站脚本攻击、CSRF跨站...

    PHP数据缓存技术

    通过对PHP数据缓存技术的深入分析,我们可以看到缓存在现代Web开发中的重要性。无论是简单的文件缓存还是更复杂的数据库缓存,合理地利用缓存技术都能够显著提升系统的性能和用户体验。未来随着技术的发展,更多的...

    PHP项目案例分析毕业论文

    6. **性能优化**:分享如何通过缓存技术、代码优化、负载均衡等手段提升系统性能。 7. **安全防护**:介绍常见的Web安全问题,如SQL注入、XSS攻击等,以及相应的防范措施。 8. **项目部署与维护**:讲解如何将项目...

    PHP深度分析:101个核心技巧、窍门和问题解决方法(原书第2版).pdf+PHP 内核文档.chm

    《PHP深度分析:101个核心技巧、窍门和问题解决方法》是PHP开发者的一本宝贵资源,这本书深入探讨了PHP编程中的诸多关键概念和技术,旨在帮助读者提升技能,解决实际开发中遇到的问题。结合《PHP 内核文档》CHM格式...

    PHP实例开发源码——phpcj php成绩查询分析系统.zip

    9. **性能优化**:对于大规模数据的查询和分析,项目可能采用缓存技术(如Memcached或Redis)来提高响应速度。 10. **安全性**:考虑到成绩数据的敏感性,项目应遵循安全编码原则,防止SQL注入、跨站脚本攻击(XSS...

    关于BIWEB常见问题和结构分析

    9. 视频教程:"php100-58.wmv"可能是系列视频教程的一部分,内容可能涵盖PHP基础知识、BIWEB特定技术或案例分析,帮助学习者更直观地掌握相关技能。 总结,"关于BIWEB常见问题和结构分析"涵盖了PHP在Web开发中的...

    《PHP深度分析》随书代码

    9. **性能优化**:PHP性能优化是重要的话题,代码可能会展示如何使用缓存技术(如APC、Memcached或Redis),以及编写高效的代码来提升网站性能。 10. **安全性**:安全编码是Web开发的关键,代码中可能包含防止SQL...

    基于PHP的SK电影爬虫伪静态缓存极速版.zip

    在PHP中,常见的缓存技术有文件缓存、内存缓存(如APC、Memcached、Redis)以及数据库缓存。缓存可以将频繁访问的数据存储起来,下次请求时直接读取缓存,避免了每次查询数据库的时间开销。这显著提升了响应速度,...

    PHP实例开发源码-KASEN动漫伪静态缓存版 php版.zip

    通过对KASEN动漫伪静态缓存版的分析,我们可以深入理解PHP在实际项目中的运用,以及如何利用缓存技术提升网站性能。同时,对于初学者,这是一个很好的学习资源,可以借此了解Web开发的流程和常见技术,提高编程技能...

    基于PHP技术的网站设计毕业论文

    6. **性能优化与安全**:探讨PHP的性能优化技巧,如缓存技术,以及防止SQL注入、XSS攻击的安全措施。 7. **实例分析**:分析一个具体的PHP网站开发项目,从需求分析到上线运行的全过程。 8. **结论**:总结PHP在网站...

    服务器缓存设置 工具

    服务器缓存是提升网站或应用性能的关键技术,它通过存储常用数据或计算结果,减少对主服务器或外部资源的访问,从而显著加快响应速度。在本文中,我们将深入探讨服务器缓存的工作原理、常见类型、设置方法以及如何...

    PHP深度分析:101个核心技巧、窍门和问题解决方法(原书第2版)part1

    5名世界级专家使用无数的最佳实践编程实例带您领略PHP的非凡功力。... 本书适用于具有一定php开发经验的初学人员,对于那些希望改善web应用程序或提高技术水平的资深开发人员也有很高的参考价值。

    php常见面试题

    - 使用缓存技术,如Memcached或Redis,提高数据访问速度。 - 实施负载均衡,分散服务器压力。 - 静态资源使用CDN(内容分发网络)进行加速。 - 减少不必要的数据库查询。 - 通过性能分析找出系统瓶颈并优化。 ...

    php+mysql 经典案例分析

    13. 性能优化:包括缓存技术(如APC、Memcached、Redis)、数据库查询优化、减少HTTP请求等,都是提升Web应用性能的重要手段。 以上就是《PHP+MySQL经典案例分析》中涉及的主要知识点,通过这些知识的学习和实践,...

    Linux编程之提升PHP执行速度全攻略分析

    缓存技术能显著加速PHP应用。当PHP文件首次被请求时,中间代码被存储在内存中,后续请求直接从内存读取,减少磁盘I/O,提升性能。常见的缓存解决方案有Zend Cache(商业产品,速度快但需付费)、Afterburner Cache...

Global site tag (gtag.js) - Google Analytics