[浪峰推荐]php的memcache应用入门教程
所需环境:
php 5.3.3
apache 2.2.7
mysql 5.5.8
解压Memcached_1.2.5文档,cmd下执行memcached.exe -d -install
将php5.3_vc6_memcachedll文档解压,将php_memcache.dll文件复制到php安装目录的ext文件目录中。
然后在php.ini 当中填上这句话:extension=”php_memcache.dll”
在phpinfo()下查看,是否引用了memcache扩展。
测试代码:
- <?php
- //连接
- $mem = new Memcache;
- $mem->connect(“127.0.0.1″, 11211);
- //保存数据
- $mem->set(‘key1′, ’This is first value’, 0, 60);
- $val = $mem->get(‘key1′);
- echo ”Get key1 value: ” . $val .”<br />”;
- //替换数据
- $mem->replace(‘key1′, ’This is replace value’, 0, 60);
- $val = $mem->get(‘key1′);
- echo ”Get key1 value: ” . $val . ”<br />”;
- //保存数组
- $arr = array(‘aaa’, ’bbb’, ’ccc’, ’ddd’);
- $mem->set(‘key2′, $arr, 0, 60);
- $val2 = $mem->get(‘key2′);
- echo ”Get key2 value: ”;
- print_r($val2);
- echo ”<br />”;
- //删除数据
- $mem->delete(‘key1′);
- $val = $mem->get(‘key1′);
- echo ”Get key1 value: ” . $val . ”<br />”;
- //清除所有数据
- $mem->flush();
- $val2 = $mem->get(‘key2′);
- echo ”Get key2 value: ”;
- print_r($val2);
- echo ”<br />”;
- //关闭连接
- $mem->close();
- $memcachehost = ’192.168.10.1′;
- $memcacheport = 11211;
- $memcachelife = 60;
- $memcache = new Memcache;
- $memcache->connect($memcachehost,$memcacheport) or die (“Could not connect”);
- $query=”select * from user limit 10″;
- $key=md5($query);
- if(!$memcache->get($key))
- {
- $conn=mysql_connect(“192.168.30.1″,”root”,”passwd”);
- mysql_select_db(users);
- $result=mysql_query($query);
- while ($row=mysql_fetch_assoc($result))
- {
- $arr[]=$row;
- }
- $f = ’db’;
- $memcache->add($key,serialize($arr),0,30);
- $data = $arr ;
- }
- else{
- $f = ’mem’;
- $data_mem=$memcache->get($key);
- $data = unserialize($data_mem);
- }
- echo $f;
- echo ”";
- //print_r($data);
- foreach($data as $a)
- {
- echo $a[user_id]._.$a[email];
- echo ”";
- }
- ?>
新闻系统的应用:
- //==============memcache
- $memcachehost = ’127.0.0.1′;
- $memcacheport = 11211;
- $memcachelife = 60;
- $memcache = new Memcache;
- $memcache->connect($memcachehost,$memcacheport) or die (“Could not connect”);
- //==============新闻
- $sql=”SELECT id,title,left(title,16) as biaoti,date_time FROM `p_newsbase` where shenhe=’1′ order by id DESC limit 7 ”;
- $query=$db->query($sql);
- $key=md5($query);
- $str=$row_news['biaoti'].$db->time_out($row_news['date_time']);
- while($row_news=$db->fetch_array($query)){
- $sm_news[]=array(“name”=>$str,”title”=>$row_news['title'],”id”=>$row_news['id'],”date_time”=>$row_news['date_time']);
- }
- if(!$memcache->get($key)){
- $memcache->add($key,serialize($sm_news),0,$memcachelife);
- }else{
- $data_mem=$memcache->get($key);
- $sm_news = unserialize($data_mem);
- }
- $smarty->assign(“sm_news”,$sm_news);
源地址:http://laf.freel.cn/php/phpmemcachestudy.html
浪风先分享这么多,以后会继续分享我的小工具给大家。分享万岁,技术永存。
浪峰小园子 -- 比较认真的PHP平台开发;
曾用ThinkPHP框架开发较大型手机平台多用户建站系统;
曾用Noah框架参与开发某大型电子商务后端ERP和前端WEB系统;
在某个周末的午后写了一个完全碎片化的PHP开发框架,可以任意组装和拆卸;
现就职于某集团公司,专注于ERP系统及新系统的评估。