- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP企业级应用之常见缓存技术篇
PHP企业级应用之常见缓存技术篇
作者: cnblog?来源: 博客园??发布时间: 2011-01-28 16:07??阅读: 33 次??原文链接?? 全屏阅读 [收藏]??
编辑点评:本文主要讲解PHP企业级应用之常见缓存技术,从基本的PHP缓存概念到技术代码的实现都深入做了解读。数据缓存:这里所说的数据缓存是指数据库查询缓存。
普遍缓存技术
数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据, 并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。
用的最广的例子看Discuz的有哪些信誉好的足球投注网站功能,把结果ID缓存到一个表中,下次有哪些信誉好的足球投注网站相同关键字时先有哪些信誉好的足球投注网站缓存表。
举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个 数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。
页面缓存:
每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问 的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)
时间触发缓存:
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。
内容触发缓存:
当插入数据或更新数据时,强制更新缓存。
静态缓存:
这里所说的静态缓存是指静态化,直接生成HTML或xml等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。
以上内容是代码级的解决方案,我直接CP别的框架,也懒得改,内容都差不多,很容易就做到,而且会几种方式一起用,但下面的内容是服务器端的缓存方 案,非代码级的,要有多方的合作才能做到
内存缓存:
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
这里说下Memcached的例子:
1. ?php 2. $memcache = new Memcache; 3. $memcache-connect(‘localhost’, 11211) or die (“Could not connect”); 4. $version = $memcache-getVersion(); 5. echo “Server’s version: “.$version.”\n”; 6. $tmp_object = new stdClass; 7. $tmp_object-str_attr = ‘test’; 8. $tmp_object-int_attr = 123; 9. $memcache-set(‘key’, $tmp_object, false, 10) or die (“Failed to save data at the server”); 10. echo “Store data in the cache (data will expire in 10 seconds)\n”; 11. $get_result = $memcache-get(‘key’); 12. echo “Data from the cache:\n”; 13. var_dump($get_result); 14. ?
读库的例子:
1. ?php 2. $sql = ‘SELECT * FROM users’; 3. $key = md5($sql); //memcached 对象标识符 4. if ( !($datas = $mc-get($key)) ) { 5. // 在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集。 6. echo “n”.str_pad(‘Read datas from MySQL.’, 60, ‘_’).”n”; 7. $conn = mysql_connect(‘localhost’, ‘test’, ‘test’); 8. mysql_select_db(‘test’); 9. $result = mysql_query($sql); 10. while ($row = mysql_fetch_object($result))
您可能关注的文档
- 高2011级语文对接高考字词篇2.doc
- 第五讲-插入语和否定.ppt
- 西湖之声新闻稿件 我市开出首张中高考禁噪罚单.doc
- 各国介绍文章(英文).doc
- 红外遥控编码的唯一性研究.pdf
- 张兆海个人教研课题.doc
- 《智能电网白皮书》解读.doc
- suse10SP2系统安装.doc
- 智能电网中的分布式发电技术综述.doc
- 在青城文化旅游推介会上的讲话兰州市旅游局康局长.doc
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)