仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 548|回复: 9
打印 上一主题 下一主题

[学习教程] PHP编程:用PHP往完成数据库查询了局缓存

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...有些时分我们但愿削减对数据库的查询来进步程序的功能,由于这些数据不是常常变动的,而是会在很长一段工夫内都不会变更,因而,我们每毗连一次数据库,城市把响应的了局用文件的情势保留起来。好比关于一个商城来讲,我们的商品的数目大概会常常变,可是我们的商品范例和商品的价格这些器材城市在很长的一段工夫内不会变动,假如我们必要频仍的查询它们的时分,就能够利用数据库缓存手艺。
缓存的缘故原由
第一点起首看我们一般情形下实行一条SQL查询的开支,我们先毗连数据库,然后筹办SQL查询,接上去发送查询信息,然后获得前往了局,最初封闭数据库毗连,如许的话会占用较多的资本,而我们的PHP程序也由于要守候从数据库中查询而使得呼应速率变慢。
第二点就是在数据库压力较年夜时,好比岑岭时段,这个时分数据库压力年夜,我们就必要把一些数据存储到硬盘上,用文件的情势往读取,如许的做法是用我们的硬盘空间调换数据库的压力,这一点也要看呆板功能。
第三点就是有些数据不发急往更新,好比下面提到的商品范例表,就不会太急于更新,好比我们的用户的中心信息,一样平常也不会容易往修正暗码甚么的,这些内容能够选择用文件的情势往缓存起来。
缓存的完成道理
第一点就是我们要断定什么时候强迫更新内容,最多见的有三种体例就是第一个就是用工夫往触发,我们一般利用工夫戳,第二点就是发明数据库数据被修正,则主动更新缓存,第三个就是野生触发,我们用野生的防水告知信息体系强迫更新缓存内容。
第二点就是我们能够经由过程利用serialize()函数来把从数据库中获得的数据举行序列化,保留为当地文件,然后我们经由过程unserialize来从当地文件中读失信息,所谓序列化就是用特定的体例往存储PHP的值,它会包管部丧失这些值的范例和布局。
实战演示
我们起首把从数据库中读取的数据存进当地文件,代码以下:
  1. [/code]
  2. 然后我们能够翻开这个sqlcache.txt文件,它的内容以下:
  3. [code]a:6:{i:0;a:4:{s:2:"id";s:1:"1";s:5:"level";s:1:"0";s:4:"name";s:6:"辛星";s:3:"pwd";s:32:"bd04fcc97578ce33ca5fb331f42bc375";}i:1;a:4:{s:2:"id";s:1:"2";s:5:"level";s:1:"1";s:4:"name";s:6:"小倩";s:3:"pwd";s:32:"61cb72858be523b9926ecc3d7da5d0c6";}i:2;a:4:{s:2:"id";s:1:"3";s:5:"level";s:1:"1";s:4:"name";s:6:"小楠";s:3:"pwd";s:32:"a3d2de7675556553a5f08e4c88d2c228";}i:3;a:4:{s:2:"id";s:1:"4";s:5:"level";s:1:"1";s:4:"name";s:6:"刘强";s:3:"pwd";s:32:"fcdb06a72af0516502e5fdccc9181ee0";}i:4;a:4:{s:2:"id";s:1:"5";s:5:"level";s:1:"1";s:4:"name";s:6:"星哥";s:3:"pwd";s:32:"866a6cafcf74ab3c2612a85626f1c706";}i:5;a:4:{s:2:"id";s:1:"6";s:5:"level";s:1:"1";s:4:"name";s:6:"辛勇";s:3:"pwd";s:32:"e93beb7663f3320eaa0157730d02dd0c";}}
复制代码
然后我们能够写一个程序从该文件中读取数据,PHP代码以下:
[code][/code]
如许我们的$result就是从当地的txt文件中读取的数据,而不是从数据库中读取的数据了,即我们摹拟了缓存的利用。


申明:
1.我们经由过程filemtime来失掉文件的创立工夫,能够用time来失掉如今的工夫,经由过程对照这个差值来决意是不是要更新缓存。
2.我们能够用unlink来强迫的删除文件以清空数据缓存







《PHP+MYSQLWEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)
不帅 该用户已被删除
沙发
发表于 2015-1-17 07:15:16 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点工具的好。
爱飞 该用户已被删除
板凳
发表于 2015-1-20 15:04:17 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
分手快乐 该用户已被删除
地板
发表于 2015-1-29 12:03:10 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
活着的死人 该用户已被删除
5#
发表于 2015-2-6 00:42:10 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
乐观 该用户已被删除
6#
发表于 2015-2-14 17:26:53 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
小魔女 该用户已被删除
7#
 楼主| 发表于 2015-3-4 09:21:54 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-11 18:08:42 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
9#
发表于 2015-3-19 06:09:53 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
变相怪杰 该用户已被删除
10#
发表于 2015-3-27 09:09:43 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 03:52

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表