首页 > 开发 > PHP > 正文

PHP使用redis实现统计缓存mysql压力的方法

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

这篇文章主要介绍了PHP使用redis实现统计缓存mysql压力的方法,涉及PHP操作MySQL数据库及使用Redis统计的相关技巧,需要的朋友可以参考下

本文实例讲述了PHP使用redis实现统计缓存mysql压力的方法。分享给大家供大家参考,具体如下:

 

 
  1. <?php 
  2. header("Content-Type:text/html;charset=utf-8"); 
  3. include 'lib/mysql.class.php'
  4. $mysql_obj = mysql::getConn(); 
  5. //redis  
  6. $redis = new Redis(); 
  7. $redis->pconnect('127.0.0.1', 6379); 
  8. if(isset($_SERVER['HTTP_REFERER'])){ 
  9. $url_md5 = md5($_SERVER['HTTP_REFERER']); 
  10. $adve_key = 'adve';  
  11. $adve_key_exists = 'adve_exists'
  12. if(!$redis->exists($adve_key_exists)){ 
  13. $list = $mysql_obj->fetch_array("select * from user_online_adve"); 
  14. if($list){ 
  15. foreach ($list as $key => $value) { 
  16. $url_hash = md5($value['adve_url']); 
  17. $adve_hash_key = $adve_key.":".$url_hash; 
  18. $id = $value['id']; 
  19. $redis->set($adve_hash_key,$id); 
  20. $redis->set($adve_key_exists,true); 
  21. //$redis->hmset($adve_hash_key, array('id' =>$id)); 
  22. //print_r($redis->get($adve_hash_key)); 
  23. $adve_new_key = $adve_key.':'.$url_md5; 
  24. if($redis->exists($adve_new_key)){ 
  25. $adve_plus = $adve_new_key.":plus" ; 
  26. if(!$redis->exists($adve_plus)){ 
  27. $redis->set($adve_plus,1);  
  28. }else
  29. $redis->incr($adve_plus); 
  30. $num = $redis->get($adve_plus); 
  31. if($num >10){ 
  32. $id = $redis->get($adve_new_key); 
  33. // insert to sql; 
  34. $mysql_obj->query("update user_online_adve set adve_num=adve_num+$num where id=$id"); 
  35. $redis->set($adve_plus,1); 
  36. header('HTTP/1.0 301 Moved Permanently'); 
  37. header('Location: https://itunes.apple.com/cn/app/san-guo-zhi15-ba-wangno-da-lu/id694974270?mt=8'); 
  38. /* 
  39. if(){ 
  40. $adve_plus = $adve_key.":plus" ; 
  41. if($redis->exists($adve_plus)){ 
  42. $redis->incr($adve_plus); 
  43. }else{ 
  44. $redis->set($adve_plus,1);  
  45. } 
  46. echo $redis->get($adve_plus); 
  47. } 
  48. foreach ($list as $key => $value) { 
  49. $url_hash = md5($value['adve_url']); 
  50. $id = $value['id']; 
  51. $adve_num = $value['adve_num']; 
  52. $adve_plus = $adve_key.":plus" ; 
  53. if($redis->exists($adve_plus)){ 
  54. $redis->incr($adve_plus); 
  55. }else{ 
  56. $redis->set($adve_plus,1);  
  57. } 
  58. echo $redis->get($adve_plus); 
  59. //if($redis->) 
  60. //$redis->hmset($adve_key, array('id' =>$id, 'adve_num'=>$adve_num)); 
  61. //print_r($redis->hmget("adve:$url_hash", array('adve_num'))); 
  62. } 
  63. print_r($list); 
  64. */ 

希望本文所述对大家php程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表