首页 > 开发 > PHP > 正文

php中memcache 基本操作实例

2024-05-04 23:35:21
字体:
来源:转载
供稿:网友

本文实例讲述了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. //将获取的值数组存入memcache 
  30. for($i=0;$i<count($rows);$i++){ 
  31. $k[$i]=$rows[$i]['city']; 
  32. $v[$i]['city']=$rows[$i]['city']; 
  33. $v[$i]['pm25']=$rows[$i]['pm25']; 
  34. $mem -> set($k[$i], $v[$i], false, $expires); 
  35. // $return=$mem->get($city); 
  36. // echo json_encode($return); 
  37. }//if 
  38. else
  39. echo "get key from new_writed mysql:"."<br />"
  40. write_db($resultJson); 
  41. $query="select * from pm25"
  42. $result=mysql_query ($query) ; 
  43. while ($row = mysql_fetch_assoc($result)){ 
  44. $rows[]=$row
  45. //write memcache 
  46. for($i=0;$i<count($rows);$i++){ 
  47. $k[$i]=$rows[$i]['city']; 
  48. $v[$i]['city']=$rows[$i]['city']; 
  49. $v[$i]['pm25']=$rows[$i]['pm25']; 
  50. $mem -> set($k[$i], $v[$i], false, $expires); 
  51. // $return=$mem->get($city); 
  52. // echo json_encode($return); 
  53. }//else 
  54.  
  55. }//else 
  56.  
  57. foreach ($city as $k=>$v){ 
  58. $return[$k]=$mem->get($v); 
  59. echo json_encode($return); 
  60.  
  61. function fetch_data() { 
  62. $url="http://www.example.com"
  63. //$url="";  
  64. $data = http_get($url); 
  65. $getJson = json_decode($data, true); 
  66. return $getJson
  67. //func fetch_data 
  68.  
  69. function write_db($getJson){ 
  70. $sql="DELETE FROM pm25"
  71. mysql_query($sql); 
  72. //sort the json.txt 
  73. foreach ($getJson as $key => $row) { 
  74. $area[$key] = $row['area']; 
  75. $pm2_5[$key]= $row['pm2_5']; 
  76. array_multisort($area, SORT_ASC,$pm2_5,SORT_ASC,$getJson); 
  77. for($i=0;$i<count($getJson)-1;$i++){ 
  78. if($getJson[$i]['pm2_5']==0) 
  79. $count=0; 
  80. else 
  81. $count=1; 
  82. $sum=$getJson[$i]['pm2_5']; 
  83. for($j=$i+1;$j<count($getJson);$j++,$i++){ 
  84. if(strcmp($getJson[$j]['area'],$getJson[$i]['area'])==0 ){ 
  85. if($getJson[$j]['pm2_5']==0 ){ 
  86. continue
  87. else
  88. $count++; 
  89. $sum+=$getJson[$j]['pm2_5']; 
  90. $pm2_5=$sum/$count
  91. else
  92. //insert into mysql 
  93. $result['city']=$getJson[$i]['area']; 
  94. $result['pm25']=intval($pm2_5); 
  95. $query="insert into pm25(city,pm25) values ('".$result['city']."',".$result['pm25'].")"
  96. mysql_query($query); 
  97. break
  98. return $getJson
  99. }//func write_db 
  100.  
  101.  
  102. $mem -> close(); 
  103. ?> 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表