php当中的memcache应用

来源:互联网 发布:数据库事务隔离级别 编辑:程序博客网 时间:2024/04/29 12:13

所需环境:

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);   while($row_news=$db->fetch_array($query)){      $str=$row_news['biaoti'].$db->time_out($row_news['date_time']);      $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);  


原创粉丝点击