麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PHP > 正文

PHP緩存技術詳談

2024-05-04 21:47:17
字體:
來源:轉載
供稿:網友

一、引論:PHP,一門最近幾年興起的web設計腳本語言,由于它的強大和可伸縮性,近幾年來得到長足的發展,php相比傳統的asp網站,在速度上有絕對的優勢,想mssql轉6萬條數據php如需要40秒,asp不下2分鐘.但是,由于網站的數據越來越多,我們渴求能更快速的調用數據,不必要每次都從數據庫掉,我們可以從其他的地方,比方一個文件,或者某個內存地址,這就是php的緩存技術,也就是Cache技術.

二、分析深入:一般來說,緩存的目的是把數據放在一個地方讓訪問的更快點,毫無疑問,內存是最快的,但是,幾百M的數據能往內存放么?這不現實,當然,有的時候臨時放如服務器緩存,如ob_start()這個緩存頁面開啟的話在發送文件頭之前頁面內容都被緩存在內存中,知道等頁面輸出自動清楚或者等待ob_get_contents的返回,或者被ob_end_clean顯示的清除,這在靜態頁面的生成中能很好的利用,在模板中能得到很好的體現,我的這篇文章深入的討論了:談PHP生成靜態頁面,這是一種方式,但這是臨時性的,不是解決我們問題的好方法.

另外,在asp中有一對象application,可以保存公用的參數,這也算點緩存,但在php,我至今沒看到開發者產出這種對象,的確,沒必要.asp.net的頁面緩存技術就用的是viewstate,而cache就是文件關聯,(不一定準確),文件被修改,更新緩存,文件沒被修改而且不超時(注釋1),就讀取緩存,返回結果,就是這個思路,看看這個源碼:

  1. <?php 
  2. class cache{ 
  3. /* 
  4. Class Name: cache 
  5. Description: control to cache data,$cache_out_time is a array to save cache date time out. 
  6. Version: 1.0 
  7. Author: 老農 cjjer 
  8. Last modify:2013-2-26 
  9. Author URL: http://www.companysz.com 
  10. */ 
  11. private $cache_dir; 
  12. private $expireTime=180;//緩存的時間是 60 秒 
  13. function __construct($cache_dirname){ 
  14. if(!@is_dir($cache_dirname)){ 
  15. if(!@mkdir($cache_dirname,0777)){ 
  16. $this->warn('緩存文件不存在而且不能創建,需要手動創建.'); 
  17. return false
  18. $this->cache_dir = $cache_dirname; 
  19. function __destruct(){ 
  20. echo 'Cache class bye.'
  21.  
  22. function get_url() { 
  23. if (!isset($_SERVER['REQUEST_URI'])) { 
  24. $url = $_SERVER['REQUEST_URI']; 
  25. }else
  26. $url = $_SERVER['script_NAME']; 
  27. $url .= (!empty($_SERVER['QUERY_STRING'])) ? '?' . $_SERVER['QUERY_STRING'] : ''
  28.  
  29. return $url; 
  30.  
  31. function warn($errorstring){ 
  32. echo "<b><font color='red'>發生錯誤:<pre>".$errorstring."</pre></font></b>"
  33.  
  34. function cache_page($pageurl,$pagedata){ 
  35. if(!$fso=fopen($pageurl,'w')){ 
  36. $this->warns('無法打開緩存文件.');//trigger_error 
  37. return false
  38. if(!flock($fso,LOCK_EX)){//LOCK_NB,排它型鎖定 
  39. $this->warns('無法鎖定緩存文件.');//trigger_error 
  40. return false
  41. if(!fwrite($fso,$pagedata)){//寫入字節流,serialize寫入其他格式 
  42. $this->warns('無法寫入緩存文件.');//trigger_error 
  43. return false
  44. flock($fso,LOCK_UN);//釋放鎖定 
  45. fclose($fso); 
  46. return true
  47.  
  48. function display_cache($cacheFile){ 
  49. if(!file_exists($cacheFile)){ 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产91久久久久 | 黄色片免费在线 | 中文字幕专区高清在线观看 | 欧美性生交大片 | 密室逃脱第一季免费观看完整在线 | 一区二区久久久久草草 | 亚洲日本欧美 | 国产精品免费久久久久 | 4p嗯啊巨肉寝室调教男男视频 | 成人福利网 | 国产91一区| 国产成人自拍av | 福利在线免费 | 污视频在线看 | 久久国产在线观看 | 亚洲天堂中文字幕在线观看 | 久久久久久久不卡 | 毛片大全| 黄色特级一级片 | 久草在线高清视频 | 久久亚洲精品国产一区 | 91短视频在线观看 | 亚洲国产精品500在线观看 | 中文字幕 日本 | 国产精品入口夜色视频大尺度 | 桥本有菜免费av一区二区三区 | 91看片王| 亚洲一区二区国产 | 亚洲福利视 | 日韩精品中文字幕在线观看 | 精品一区二区三区免费毛片 | 国产一极毛片 | 毛片视频网址 | 国产精品久久久久久久久久三级 | 禁漫天堂久久久久久久久久 | 欧美性受xxxx人人本视频 | 久久蜜桃精品一区二区三区综合网 | javhdfreejaⅴhd| 精品亚洲一区二区 | av手机在线免费播放 | 水多视频在线观看 |