請問PHP有什麼好的緩衝嗎
比如我要緩衝index.php首頁,10分鐘更新一次,怎麼寫緩衝啊!
以前做.net,現在轉PHP,很多頁面需要緩衝,不知道php怎麼寫
求寫法,最好有個demo
比如index.php,然後別人訪問的時候每10分鐘更新1次index.html,當然index.html是index.php的緩衝,
及時不產生index.html,
要求index.php每5分鐘更新1次資料
怎麼寫啊!!!
產生最好!!
------解決方案--------------------
用smarty模板哇,裡面有緩衝,http://www.smarty.net/docsv2/en/,手冊內容好像有點多,google一下.
------解決方案--------------------
全英文的
------解決方案--------------------
memcached
------解決方案--------------------
你在.net怎麼做,就在php怎麼做
不過是方言不同而已
------解決方案--------------------
引用:
memcached
memcached快取頁面面?沒做過,是把整個頁面丟進一個值裡面嗎?
------解決方案--------------------
在這個情境下memcached做緩衝是很2的事情。不提通訊量,你一個產生好的純靜態頁,每次還要先載入php,從memcached伺服器讀取出來,再返回給客戶機,效率很低。
推薦的方法是把index.html組建檔案緩衝,然後跑指令碼定時更新。
------解決方案--------------------
你要緩衝首先要知道自己為什麼要緩衝,想緩衝什麼...
樓上的每個回答都是在某種程度上可行的, 關鍵看你要做啥...
------解決方案--------------------
要緩衝整個頁面的話,直接自己建立個靜態檔案就可以了。ob_start(),ob_get_contents(),flush()或ob_flush(),這四個函數足夠了。
每次請求這個頁面時判斷一下,如果這個靜態檔案存在,或者目前時間-它的建立時間>=10分鐘,就重新用上面的方法產生靜態頁面。否則就直接讀出這個靜態檔案返回給瀏覽器。
------解決方案--------------------
memcached或redis適合快取資料,這種需要緩衝整個頁面的,用上面的方法最好。
------解決方案--------------------
couch db
------解決方案--------------------
謝謝大家幫忙,俺測試了1個頁面緩衝,產生1個html,關鍵並不是我所需要的,
比如根據條件我查詢資料,緩衝時間設定1分鐘,
結果我選取查詢條件,資料沒發生改變
我想需要的是選取查詢時間,資料發生改變,同事,同樣的查詢條件,1分鐘更新一次,
比如我選擇時間地區,開始預設是近1天資料,
當我選擇前天條件查詢的時候,要的是前天的詩句,
如果我重新查詢前天資料,還是前天資料,但1分鐘內不會有更新,1分鐘後查詢才會有更新,
1分鐘內當我選擇後天資料,是後天資料,而不是前天的資料
就是查詢條件改變,根據當天條件進行1分鐘或者1小時,1天的緩衝,
不影響其他條件查詢,當然其他條件也是1分鐘或者1小時。1天的時間緩衝
------解決方案--------------------
說白了,就是根據條件查詢,進行資料緩衝
------解決方案--------------------
按你#11描述,你的設想是有問題的
這樣的話,你需要緩衝的是自有史以來所有時刻的現場。因為任何人都可能從以往的任何時刻開始查詢
以一分鐘為界一年為期,至少也需要6151680個快取項目
這顯然是不可取的
由於可用的查詢運算式是有限的,所以你可以依據查詢運算式建立若干個視圖。從而使查詢運算交與資料庫後台完成
------解決方案--------------------
是啊!所以頭疼啊!!!
所以想放到記憶體中,然後定期清理記憶體
------解決方案--------------------
用輸入輸出緩衝做個檔案快取
------解決方案--------------------
新手,路過~你這個需求我覺得用靜態頁緩衝比較好
------解決方案--------------------
這個和一些網址導航類網站的首頁緩衝是一樣的。只不過他們將首頁緩衝在用戶端的期限可能長一點,比如1個月、3個月......
具體方法為:
1、將首頁所引用的相關素件(圖片、CSS檔案、JS檔案等)存到一個專門的目錄中,比如cache;
2、.htaccess中加入規則:
#緩衝首頁物件
#RewriteCond %{HTTP_HOST} ^www.162100.com [NC]
#RewriteCond %{REQUEST_URI} ^$ [OR]
#RewriteCond %{REQUEST_URI} ^/$ [OR]
#RewriteCond %{REQUEST_URI} ^/index.html$ [NC]
#RewriteRule (index\.html) gzip.php?cfile=$1 [L]
#RewriteRule ^(cache\/.+)$ gzip.php?cfile=$1 [L]
3、根目錄(即同index.html一個目錄)做一個檔案gzip.php,代碼為: