|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...有些时分我们但愿削减对数据库的查询来进步程序的功能,由于这些数据不是常常变动的,而是会在很长一段工夫内都不会变更,因而,我们每毗连一次数据库,城市把响应的了局用文件的情势保留起来。好比关于一个商城来讲,我们的商品的数目大概会常常变,可是我们的商品范例和商品的价格这些器材城市在很长的一段工夫内不会变动,假如我们必要频仍的查询它们的时分,就能够利用数据库缓存手艺。
缓存的缘故原由
第一点起首看我们一般情形下实行一条SQL查询的开支,我们先毗连数据库,然后筹办SQL查询,接上去发送查询信息,然后获得前往了局,最初封闭数据库毗连,如许的话会占用较多的资本,而我们的PHP程序也由于要守候从数据库中查询而使得呼应速率变慢。
第二点就是在数据库压力较年夜时,好比岑岭时段,这个时分数据库压力年夜,我们就必要把一些数据存储到硬盘上,用文件的情势往读取,如许的做法是用我们的硬盘空间调换数据库的压力,这一点也要看呆板功能。
第三点就是有些数据不发急往更新,好比下面提到的商品范例表,就不会太急于更新,好比我们的用户的中心信息,一样平常也不会容易往修正暗码甚么的,这些内容能够选择用文件的情势往缓存起来。
缓存的完成道理
第一点就是我们要断定什么时候强迫更新内容,最多见的有三种体例就是第一个就是用工夫往触发,我们一般利用工夫戳,第二点就是发明数据库数据被修正,则主动更新缓存,第三个就是野生触发,我们用野生的防水告知信息体系强迫更新缓存内容。
第二点就是我们能够经由过程利用serialize()函数来把从数据库中获得的数据举行序列化,保留为当地文件,然后我们经由过程unserialize来从当地文件中读失信息,所谓序列化就是用特定的体例往存储PHP的值,它会包管部丧失这些值的范例和布局。
实战演示
我们起首把从数据库中读取的数据存进当地文件,代码以下:- [/code]
- 然后我们能够翻开这个sqlcache.txt文件,它的内容以下:
- [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开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-) |
|