雨後的天空

三月 26, 2008

使用Memcache

分類於 記事 — mayshih @ 4:47 午後
Tags: , ,

對於異動性不高但卻需要大量讀取這些儲存在資料庫的資料時,有沒有什麼方法可以減少對資料庫存取時所秏的資源。

使用 Cache 是解決方法的其中一種。

好比你部落格發表的文章,寫完了,發表後,除非有錯字或錯誤需要做更正外,最多的情況,就是當有大量的網友讀取這篇文章,這時對資料庫所做的就是單純的 Select ,為了減少對資料庫讀取的頻率,先將 Select 出來的資料,設個 Key(可以是文章編號),存到 Memery Cache中,當有下位網友也要讀同一篇文章時,先用同一個Key去Memcache 中找找看,有沒有該筆資料,如果有,就直接丟出去。如果沒有,再到資料庫去找,找到後再設Key存到 Memery Cache去,這樣可以減少對資料庫的 Loading。

這裡寫出,用 Php 要如何去連結 Memcache Server,用Key找資料、或用Key將資料存在、刪除等。。。

<?php
$memcache = new Memcache;

//在這裡指定你所要連接Server的IP、和Port

$memcache->addServer(‘127.0.0.1′, 11211);
//取得連接的狀態

echo “Server’s status : “.$memcache->getServerStatus(‘127.0.0.1′, 11211);

//取得所使用的Memcache Server是何種版本

echo “Server’s version: “.$memcache->getVersion().”<BR>”;

//假設我blog文章編號是

$key = ‘3344111′;

echo “先從 Cache 中找找看有沒有資料<BR>”;

$get_result = $memcache->get($key);

// 如果沒有資料,先找出來
if ( !($datas = $memcache->get($key)) ) {

//如 memcached 沒找到資料,去查資料庫

echo “要儲存的資料:<BR>”;

//這裡我用 Postgre SQL ,您可以改成您所使用的DB

$conn = pg_connect (“host=localhost port=5432 dbname=sns user=postgres password=123456″);

$sql = ‘SELECT * FROM blogs where blog_id = ‘.$key;

$result = pg_query($sql);

while ($row = pg_fetch_object($result)){

$datas[] = $row;

}

//將資料庫查到的資料存到 memcached中,供下次使用

memcache->set($key, $datas, false, 10);

echo “將資料存入 Cache 中 (10 秒後失效)<BR>”;

} else {

echo “從 Cache 中取回資料<BR>”;

$get_result = $memcache->get($key);

var_dump($get_result);

}

//如果要從memcache 中,移除資料的話

$memcache->delete($key);

//最後把connection關掉

$memcache->close();

?>

其他的參考資料。請見

程式下載 

三月 19, 2008

IT邦幫忙

分類於 Web — mayshih @ 3:39 午後

今天在「蔡學鏞-言程序」那邊看到 IT邦幫忙,好奇那是什麼樣的系統,轉過去看看

很像yahoo知識+,有人發問,有人回答,就能有點數。

但不同於yahoo的是,這侷限於「IT」相關問題或分享,不像yahoo分類多。

而且現在有活動,推累積點數還可以換現金~~~

目前使用的人數算少,文章數不是很多。會慢慢累積的。

先註冊了一個帳號,先按了「推」推薦2篇文章,點數+2,但推薦次數,少2,應該是當天只能推10次吧~

有興趣的也要去玩玩吧→IT邦幫忙

三月 18, 2008

memcached + php

分類於 PHP, 記事 — mayshih @ 11:35 am

有鑑於之前電腦喝水事件

裡面累積的一些資料全都因為沒有備份習慣,全沒了之後,想想還是把一些筆記放在網路上,較好…

這幾天在看 memcached

在google那找到了一些資料

先放上來,等有空時再整理

參考資料:

網站製作學習誌 – 在 Windows 上安裝 Memcached

Fred’s Blog – 非mmcache!Memcached的應用:多網站伺服器 PHP 共享 Session

小惡魔電腦技術 – [FreeBSD] 安裝 memcache for php 多重伺服器共享 Session

PHP: Memcache – Manual

下一頁 »

在WordPress.com寫網誌.