当前位置:首页 > PHP教程 > php应用 > 列表

php中memcache 基本操作实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-27 10:00:24 浏览: 评论:0 

本文实例讲述了PHP中Memcache的基本操作及用法,分享给大家供大家参考,有需要的小伙伴快来研究下吧。

php中memcache 基本操作实例:

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>memcache demo</title> 
  5. <meta http-equiv="content-type"content="text/html;chatset=utf-8"> 
  6. </head> 
  7. <body> 
  8. <?php 
  9. $server_ip = '127.0.0.1'; 
  10. $server_port = 11211; 
  11.  
  12. $memcache = new Memcache(); 
  13. $memcache->connect($server_ip,$server_port); 
  14.  
  15. $memcache->add("name1","user_name1",MEMCACHE_COMPRESSED,0); 
  16. $memcache->add("name2","user_name2",MEMCACHE_COMPRESSED,0); 
  17. $array1 = array('name1' => 'jiajiam1',  
  18. 'age1'=>12, 
  19. 'country'=>'china'); 
  20. $memcache->add("other",$array1,MEMCACHE_COMPRESSED,20); 
  21. $memcache->set("name3","user_name3",MEMCACHE_COMPRESSED,0); 
  22. $memcache->replace("name1","user_name_relpace",MEMCACHE_COMPRESSED,0); 
  23. $memcache->replace("123","12345"); 
  24.  
  25. echo"name1:".$memcache->get("name1")."<br/>"; 
  26. $memcache->delete("name1"); 
  27. echo"name1:".$memcache->get("name1")."<br/>"; 
  28.  
  29. $array_get = array("name1","name2","name3"); 
  30.  
  31. $result_get = $memcache->get($array_get); 
  32. foreach ($result_get as $key => $value) { 
  33. echo"$key:--->$value<br/>"; 
  34. } 
  35. foreach ($memcache->getStats() as $key => $value) { 
  36. echo"$key:--->$value<br/>"; 
  37. }; 
  38.  
  39. echo"<br/>"; 
  40.  
  41. foreach($memcache->getExtendedStats() as $key => $value) { 
  42. echo"$key:--->$value<br/>"; 
  43. } 
  44. $memcache->close(); 
  45. ?> 
  46. </body> 
  47. </html> 

我们再来看个更加具体些的实例

  1. <?php 
  2. include('inc/common.inc.php'); 
  3.  
  4. if (! isset($city) || ! is_array($city) ) { 
  5.     exit; 
  6. } 
  7.  
  8. //print_r ($city);exit; 
  9.  
  10. $mem = new Memcache(); 
  11. $mem-> connect('localhost', '11211'); 
  12. $expires=15*60; 
  13.  
  14. //check if cache exits 
  15. if(($value = $mem-> get($city)) != FALSE) { 
  16.     echo "get key from memcache: "."<br />"; 
  17.     //  $return=$mem->get($city); 
  18.     //  echo json_encode($return); 
  19. }//if 
  20. else { 
  21.     $resultJson=fetch_data(); 
  22.     echo count($resultJson)."<br />"; 
  23.     if(count($resultJson)==1 || emptyempty($resultJson)){ 
  24.         //从mysql中取值 
  25.         echo "get key from mysql:"."<br />"; 
  26.         $query="select * from pm25"; 
  27.         $result=mysql_query ($query) ; 
  28.         while ($row = mysql_fetch_assoc($result)){ 
  29.             $rows[]=$row; 
  30.         } 
  31.         //将获取的值数组存入memcache 
  32.         for($i=0;$i<count($rows);$i++){ 
  33.             $k[$i]=$rows[$i]['city']; 
  34.             $v[$i]['city']=$rows[$i]['city']; 
  35.             $v[$i]['pm25']=$rows[$i]['pm25']; 
  36.             $mem -> set($k[$i], $v[$i], false, $expires); 
  37.         } 
  38.         //      $return=$mem->get($city); 
  39.         //      echo json_encode($return); 
  40.     }//if 
  41.     else{ 
  42.         echo "get key from new_writed mysql:"."<br />"; 
  43.         write_db($resultJson); 
  44.         $query="select * from pm25"; 
  45.         $result=mysql_query ($query) ; 
  46.         while ($row = mysql_fetch_assoc($result)){ 
  47.             $rows[]=$row; 
  48.         } 
  49.         //write memcache 
  50.         for($i=0;$i<count($rows);$i++){ 
  51.             $k[$i]=$rows[$i]['city']; 
  52.             $v[$i]['city']=$rows[$i]['city']; 
  53.             $v[$i]['pm25']=$rows[$i]['pm25']; 
  54.             $mem -> set($k[$i], $v[$i], false, $expires); 
  55.         } 
  56.         //      $return=$mem->get($city); 
  57.         //      echo json_encode($return); 
  58.     }//else 
  59.  
  60. }//else 
  61.  
  62. foreach ($city as $k=>$v){ 
  63.     $return[$k]=$mem->get($v); 
  64. } 
  65. echo json_encode($return); 
  66.  
  67. function fetch_data() { 
  68.     $url="http://www.example.com"; 
  69.     //$url="";   
  70.     $data = http_get($url); 
  71.     $getJson = json_decode($data, true); 
  72.     return $getJson; 
  73. } //func fetch_data 
  74.  
  75. function write_db($getJson){ 
  76.     $sql="DELETE FROM pm25"; 
  77.     mysql_query($sql); 
  78.     //sort the json.txt 
  79.     foreach ($getJson as $key => $row) { 
  80.         $area[$key] = $row['area']; 
  81.         $pm2_5[$key]= $row['pm2_5']; 
  82.     } 
  83.     array_multisort($area, SORT_ASC,$pm2_5,SORT_ASC,$getJson); 
  84.     for($i=0;$i<count($getJson)-1;$i++){ 
  85.         if($getJson[$i]['pm2_5']==0) 
  86.             $count=0; 
  87.         else 
  88.             $count=1; 
  89.         $sum=$getJson[$i]['pm2_5']; 
  90.         for($j=$i+1;$j<count($getJson);$j++,$i++){ 
  91.             if(strcmp($getJson[$j]['area'],$getJson[$i]['area'])==0 ){ 
  92.                 if($getJson[$j]['pm2_5']==0 ){ 
  93.                     continue; 
  94.                 } 
  95.                 else{ 
  96.                     $count++; 
  97.                     $sum+=$getJson[$j]['pm2_5']; 
  98.                     $pm2_5=$sum/$count; 
  99.                 } 
  100.             } 
  101.             else{ 
  102.                 //insert into mysql 
  103.                 $result['city']=$getJson[$i]['area']; 
  104.                 $result['pm25']=intval($pm2_5); 
  105.                 $query="insert into pm25(city,pm25) values ('".$result['city']."',".$result['pm25'].")"; 
  106.                 mysql_query($query); 
  107.                 break; 
  108.             } 
  109.         } 
  110.     } 
  111.     return $getJson; 
  112. }//func write_db 
  113.  
  114.  
  115. $mem -> close(); 
  116. ?> 

以上所述就是本文的全部内容了,希望大家能够喜欢。

Tags: memcache

分享到: