2011-12-20 52 views

回答

2

對於從Memcache開始,創建一個簡單的數據庫並在其中插入一些值。注意:$ dbhost,$ dbuser,$ dbpass,$ dbname是你的本地主機,你的數據庫用戶名,密碼和數據庫名稱分別是你的本地主機,你的數據庫用戶名,密碼和數據庫名。

<html> 
<head> 
</head> 
<body> 
<form method="post"> 
    <p><b>Name</b>: <input type="text" size="20" name="name" /></p> 
<input type="submit" value="Submit" /> 
</form> 
<?php 
$memcache = new Memcache; 
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); 
mysql_select_db($dbname); 
$id = $_REQUEST['name']; 
//echo $id; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); 

$key = md5("SELECT * FROM memc where FirstName='{$id}'"); 
//echo $key; 
$get_result = array(); 
$get_result = $memcache->get($key); 

if ($get_result) { 
     echo "<pre>\n"; 
     echo "FirstName: " . $get_result['FirstName'] . "\n"; 
     echo "LastName: " . $get_result['LastName'] . "\n"; 
     echo "Age: " . $get_result['Age'] . "\n"; 
     echo "Retrieved From Cache\n"; 
     echo "</pre>\n"; 
} else { 
     // Run the query and get the data from the database then cache it 
    //echo $id; 
     $query="SELECT * FROM memc where FirstName='{$id}'"; 
    //echo $query; 
     $result = mysql_query($query); 

     $row = mysql_fetch_array($result); 
     echo "<pre>\n"; 
     echo "FirstName: " . $row[1] . "\n"; 
     echo "LastName: " . $row[2] . "\n"; 
     echo "Age: " . $row[3] . "\n"; 
     echo "Retrieved from the Database\n"; 
     echo "</pre>\n"; 
     $memcache->set($key, $row, MEMCACHE_COMPRESSED, 60); // Store the result of the query for 20 seconds 

     mysql_free_result($result); 
} 

?> 
</body> 
</html> 
+0

感謝它正在工作,現在至少我可以開始工作了。這是啓動和易於理解的很好例子。 – 2011-12-20 12:59:12

1

這是基本的memcache使用情況。基本上你需要做的是,在從數據庫中檢索一個值之前,檢查它是否已經存在於memcache中。如果是這樣,請使用該值。如果沒有,則從數據庫中檢索它並將其存儲在具有合適到期時間的memcache中。通常這是通過創建一些你用來檢索數據的包裝來實現的。

除非你有一個更具體的問題,否則我建議你從Memcached introduction開始。 PHP documentation也有幾個例子可以讓你開始。

相關問題