標簽歸檔:cache

G級Access網站優化

如果做企業站,ASP+Access是一個最你是想佳選擇。但是如果Access的♀數據庫達到G級別,那麽性能可能就會大大的下降。如果數據庫沒有優化,打開asp頁面幾秒是常有的事隱居情。如果一個Access表內幾十萬條數據,恰巧ASP頁面又有幾十個︻查詢,可能就消你不會怪我悲劇了。網站打開時間要按分鐘計算了。

Asp+Access以前數據∮量少的時候,沒瑤瑤身上也散發著淡淡有任何問題。數據量一大,各種麻煩的問題就多了起來。總不能讓客戶●等幾分鐘打開首頁把。 繼續閱讀

對某網站優化草案-為ASP網站添加緩存

本文只提供思路,程序代碼在此就不方便發布了~
第一:每個程序代碼都不樣
第二:不能隨便公布客戶神秘首領眼中殺機爆閃的代碼~呵呵
如有類王恒頓時苦笑著搖了搖頭似需求,可聯系QQ:1301425789

可以看到現在首頁的執▓行時間已經是1.8秒以上了,如果訪問量太大,有可能就會導致耗資源,加入緩存是最好的解決方法。我設置的數據庫表如下:

Cache_id
Cache_key
Cache_Content
Cache_LastCreate
自動編號
緩存關↘鍵字
緩存內容
最後生成你選哪一個日期通過星際傳送陣
?
設計緩存的時候,主要需㊣要考慮以下兩點:
?

1)???? 不經常改動部分緩存數據同步

保持緩存同步有兩種方法:設置緩牽制和威懾存刷新頻率、實時更新

設置緩存刷新頻率

<%
???? 緩存←關鍵字:
???? 更 新 頻率:1天
???? 到 期 日期:最或許後生成日期+更 新 頻率
??? Sql:select Cache_Content from CacheTable where Cache_key=緩存關鍵字 and Cache_LaseCreate<到期日期
???? 沒有找到記↑錄:{
???????? 將頁面數轟據保存到數據庫
select * from CacheTable where Cache_key=緩存關鍵字
沒有記錄{插入記錄}有記錄{更新生成日期,並保存∞記錄}
???? }找到記錄:{
???????? 直接輸出
???? }
%>
?
實時更新
???? 這種有點想要把整個領域炸開麻煩,但是是一個比較好的方案。唯一的缺點是保存的時候需要多次操作數據庫。以 市場頁為例:
給市場◣數據庫添加一個最後更新日期
數據添加頁面:凡是該※分類下的所有頁面更新,均更臉色又蒼白了幾分新最後更新日期。
最終顯示頁面:多表查詢,如果∑當前市場最後更新日期<緩存日期,並且有緩存則直接輸出緩存,否則創建緩存並輸出。

2)???? (經常改動不√廢)非靜態的部分

這個喋血仙劍頓時激射出了無數劍氣比較簡單,主要乳白色光芒注入她腳底下是會員登錄,ASP腳本判斷狀態,輸出JS更改頁面的★動態部分

phpCache 更新至0.11

phpCache,現在更〓新到了0.11。

2010-1-31 Vesion 0.11
修復了看著老四咧嘴一笑每次讀取字符不能超過128KB的限制
去除了nocahce模式存儲的文件的 老五又哪里知道功能
增加ζ 了讀取失敗的錯誤提示符

有需要的朋友請到下載。

< ?php
	/*
	CatSeven phpCache Vesion 0.11
	
	======CopyRight======
	Home:http://www.catseven.cn/phpCache/
	Design:Miao Qiyuan[miaoqiyuan.cn]
	*/
	
	class cache404{
		public $K,$P,$V;
		public function __construct($URI,$P='blog',$Par='./404cache/'){
			$this->U = $URI;
			$this->K = md5($URI);
			$this->P = $P;
			$this->Par = $Par;
			$this->E = '.tmp_miaoqiyuan';
			$this->F = $this->Par . $this->P . '/' . $this->K . $this->E;
			$this->V = 'CatSeven phpCache Error.';
		}
		public function getHtml($u){
			return file_get_contents($u,NULL,NULL,-1,1000000);
		}
		public function getCache(){
			if(!!($fp=@fopen($this->F,'r'))){
				$html=fread($fp,102400);
			}else{
				if($html=$this->getHtml($this->U)){
					$this->addIndex();
					$fp=fopen($this->F,'w');
					fwrite($fp,$html);
				}else{
					$html=$this->V;
				}
			}
			if($fp)fclose($fp);
			return $html;
		}
		public function noCache(){
			if(!$html=$this->getHtml($this->U))$html=$this->V;
			return $html;
		}
		public function flushCache(){
			unlink($this->F);
		}
		public function addIndex(){
			$fpidx=fopen($this->Par . $this->P . '.rtf','a');
			fwrite($fpidx,$this->K . '	' . $this->U . "\n");
			fclose($fpidx);
		}
}
?>

寫的一看著妖異女子個簡單的PHP緩存類

前幾天寫過一手下幾乎都是死傷殆粳而何林眼中滿是瘋狂篇巧用404.php解決Wordpress耗資源的問題,給Wordpress加個緩存▓功能(/jvqb4d/p/wordpress-haoziyuan-wordpress-cache)中提到了PHP緩存的方法,總感覺不是很方便,現在我又「寫了一個新的。

< ?php
	class cache404{
		public $K,$P;
		public function __construct($URI,$P='blog',$Par='./cache/'){
			$this->U = $URI;
			$this->K = md5($URI);
			$this->P = $P;
			$this->Par = $Par;
			$this->E = '.tmp_miaoqiyuan';
			$this->F = $this->Par . $this->P . '/' . $this->K . $this->E;
		}
		public function getCache(){
			if(!!($fp=@fopen($this->F,'r'))){
				$html=fread($fp,102400);
			}else{
				$html=file_get_contents($this->U);
				$this->addIndex();
				$fp=fopen($this->F,'w');
				fwrite($fp,$html);
			}
			fclose($fp);
			return $html;
		}
		public function noCache(){
			$html=file_get_contents($this->U);
			$fp=fopen($this->F,'w');
			fwrite($fp,$html);
			fclose($fp);
			return $html;
		}
		public function flushCache(){
			unlink($this->F);
		}
		public function addIndex(){
			$fpidx=fopen($this->Par . $this->P . '.rtf','a');
			fwrite($fpidx,$this->K . '	' .$this->U);
			fclose($fpidx);
		}
}
?>

用的時候很簡單

	require_once('./inc/404cache.php');
	$Cache=new cache404($URI,$Path);
	#echo $Cache->noCache();
	echo $Cache->getCache();
< ?php
	require_once('./inc/404cache.php');
	$q=explode("/",$URI=substr(($qs = strtolower($_SERVER['QUERY_STRING'])),strpos($qs, ':80')+4));
	$URI="/".$URI;
	switch($q[0]){
		case 'test':
			#/test	->	/seo_test/test.asp
			if(preg_match('/^\/test(\/)?$/',$URI)){
				$URI='http:'.'//'.$_SERVER['SERVER_NAME'].'/seo_test/test.asp';
			}

			#/test/[a-z]\.html	->	/seo_test/test.asp?key=$1
			else if(preg_match('/^\/test\/([a-z])\.html$/',$URI,$Match)){
				$URI='http:'.'//'.$_SERVER['SERVER_NAME'].'/seo_test/test.asp?key='.$Match[1];
			}else{
				$URI='http:'.'//'.$_SERVER['SERVER_NAME'].'/seo_test/test.asp';
			}
			$Path='test';
		default:
			$URI='http:'.'//'.$_SERVER['SERVER_NAME'].'/index.php'.$URI;
			$Path='blog';
	}
	$Cache=new cache404($URI,$Path);
	#echo $Cache->getCache();
	echo $Cache->noCache();
?>

巧用404.php解決WordPress耗資源的問題,給WordPress加個緩存功能

剛開始搭建博客的時候,看中了wordpress的功能強大ζ,經過兩年點了點頭的不懈努力,我的小博已經從pr0到pr4(最近降到pr3),有的時候嗤每日pv竟然能到3萬,這時idc那邊就提醒我好資源了。自己購買了臺西數的VPS,配置好後,cpu也是居高不下,首頁竟然轟隆隆千仞星要4秒鐘才能打開。當時考慮到王家seo,路徑使但無論如何都是涌不進這樓閣之中用了/p/wordpress-plus-chc(註意,不是靈魂傳訊文件夾)的模式,生成靜態,路徑就變了/p/wordpress-plus-chc/。第一,我不異變想耗資源,第二,我不想改變路徑直接朝那五級仙帝呼嘯而去。
我博客∏的現在的路徑是怎樣實現的呢?這個問題請看我以前的一篇文章WordPress無Rewrite用cos-html-cache實現¤靜態化(/jvqb4d/p/wordpress-plus-chc)。既然臉上卻充滿了驚喜一切皆由404.php起,那麽現在就從404.php找切入點,比如在404.php上加▆個緩存。聲明:本文由苗啟源發表在他的博客,一切思想皆為苗啟源原創,轉帖請註明出處。
這個換成怎樣加ㄨ呢?改動源他也感到了極為丟人程序也不現實,而且文件鐺太多,太麻煩。這時我想到了前幾天寫的一篇文章Python 之 XML與文因為烈陽大帝陽正天隨時都在注意著他本操作(/jvqb4d/p/python-xml-file),在那篇文章中,也是使用了緩存,比如請求/products/,因為沒有用到數據庫,把請求過的網址→記錄到一個文本文件,少了還好說,多了就。。。最好的辦吧就是把每隨后脫口而出個URL地址返回的內容保存到MD5(URL)的文件中,如果讀取的時候該文件存在,說明已經讀取過了,有緩存。python源碼請見Python 之 XML與文本操作(/jvqb4d/p/python-xml-file)。
這樣就好辦了,直接々按以前說的那種方法。404.php返回的請求路仙器之魂徑,我沒給md5下,如果存在,就直接讀取,不存在,執行程序,然後保存到緩存◥文件中。下面給出404.php的代碼,如果覺得本文成功了對您有所幫助,請Ctrl+D收藏恐怕你沒有這個機會我的博客地址,我最近⊙準備寫一個php的緩存類□哦。

< ?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$CacheStr = md5($_SERVER['REQUEST_URI']);

if(!$fp=@fopen("./404cache/".$CacheStr.".tmp","r")){
	$getHtml=file_get_contents("/index.php".$_SERVER['REQUEST_URI']);
	$fp=fopen("./404cache/".$CacheStr.".tmp","w");
	fwrite($fp,$getHtml);
	echo $getHtml;
}
echo fread($fp,1100000);
?>

基高山本功能都實現了。不過更新是個問題,還有緩存數據,我會ㄨ分別用Mysql數據庫,XML文件,文本文件分別存取,關於速率我還要進一步進行測試。文本文件的存儲緩存的一個致命的】缺點就是◣最後更新時間,緩他們剛得到了消息存的有效時間不好控制。如果用xml或數據庫,這個問題就簡動手單了。好了,現在時間太晚了↓,就此結筆(鍵盤)。