当前位置:首页 > 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. foreach ($memcache->getStats() as $key => $value) { 
  35. echo"$key:--->$value<br/>"
  36. }; 
  37.  
  38. echo"<br/>"
  39.  
  40. foreach($memcache->getExtendedStats() as $key => $value) { 
  41. echo"$key:--->$value<br/>"
  42. $memcache->close(); 
  43. ?> 
  44. </body> 
  45. </html> 

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

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

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

Tags: memcache

分享到: