pref_log.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. require_once("../config.php");
  3. require_once("../redis/function.php");
  4. $logstart = microtime(true)*1000;
  5. $iTime = time();
  6. $strstart = date("h:i:sa");
  7. function PrefLog(){
  8. $delay = microtime(true)*1000-$GLOBALS['logstart'];
  9. $redis = redis_connect();
  10. $timeMinute = intval(time()/60);
  11. $timeSecond = time();
  12. if($redis){
  13. $key= "pref/";
  14. $keyAll = $key."all/".$timeMinute;
  15. UpdateCache($redis,$keyAll,$delay);
  16. $keyApi = $key.$_SERVER['PHP_SELF']."/".$timeMinute;
  17. UpdateCache($redis,$keyApi,$delay);
  18. $key= "pref-s/";
  19. $keyAll = $key."all/".$timeSecond;
  20. UpdateCache($redis,$keyAll,$delay,30);
  21. $keyApi = $key.$_SERVER['PHP_SELF']."/".$timeSecond;
  22. UpdateCache($redis,$keyApi,$delay,30);
  23. $keyApiName = "pref-hour/api/".$_SERVER['PHP_SELF'];
  24. $redis->set($keyApiName,1);
  25. $redis->expire($keyApiName,3600);
  26. }
  27. $file = fopen(_DIR_LOG_."/pref_".date("Y-m-d").".log","a");
  28. if($file){
  29. fputcsv($file,[$_SERVER['PHP_SELF'],$GLOBALS['strstart'],sprintf("%d",microtime(true)*1000-$GLOBALS['logstart']),$_SERVER['REMOTE_ADDR']]);
  30. fclose($file);
  31. }
  32. }
  33. function UpdateCache($redis,$key,$delay,$expire=3600){
  34. if($redis->exists($key)){
  35. $redis->hSet($key,"count",$redis->hGet($key,"count")+1);
  36. $redis->hSet($key,"delay",$redis->hGet($key,"delay")+$delay);
  37. }else{
  38. #没有,创建
  39. $redis->hSet($key,"count",1);
  40. $redis->hSet($key,"delay",$delay);
  41. $redis->expire($key,$expire);
  42. }
  43. }
  44. ?>