我在mysql中有一個數據庫,我想在第一次從mysql獲取數據並將其存儲在memcache中。
第二次我想從memcahce中獲取它並從memcache中顯示它2-3分鐘,然後再從數據庫中顯示出來。我對memcache非常陌生,希望小例子能夠理解。如何將db值存儲在memcache中並將其顯示在memcache中
2
A
回答
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>
1
這是基本的memcache使用情況。基本上你需要做的是,在從數據庫中檢索一個值之前,檢查它是否已經存在於memcache中。如果是這樣,請使用該值。如果沒有,則從數據庫中檢索它並將其存儲在具有合適到期時間的memcache中。通常這是通過創建一些你用來檢索數據的包裝來實現的。
除非你有一個更具體的問題,否則我建議你從Memcached introduction開始。 PHP documentation也有幾個例子可以讓你開始。
相關問題
- 1. 無法將值存儲到memcache中
- 2. 數組如何通過php函數Memcache :: set()存儲在memcache中?
- 3. 如何將數據存儲在$ _SESSION中與memcache(d)不同?
- 4. 未將PHP會話保存在memcache中
- 5. 將對象保存在MemCache中而不是數據存儲區
- 6. 如何返回存儲在memcache中的所有值?
- 7. 在GoE的memcache中存儲對象
- 8. 將小文件存儲在memcache中使性能更好?
- 9. 將會話數據存儲在數據庫和memcache中
- 10. 在memcache中緩存單例
- 11. 如何將「memcache」注入service.yml?
- 12. 如何在memcache中存儲mysql表中的所有條目?
- 13. 從存儲在memcache密鑰中的數組中刪除值?
- 14. 可以將MySQL鏈接(mysql_connect)存儲在Memcache中並重復使用嗎?
- 15. 將數組存儲在使用PHP的memcache中,數組元素在memcache某段時間後取消設置
- 16. 如何用Rails.cache.fetch和memcache存儲nil?
- 17. 如何複雜的數據存儲的支柱在Memcache中
- 18. 如何在Rails 3中使用帶有Memcache存儲的OmniAuth?
- 19. Memcache使用磁盤存儲?
- 20. Memcache - 存儲mysql結果
- 21. 在Python中的Memcache
- 22. 存儲在線用戶php + memcache
- 23. 將會話數據存儲在memcache服務器上
- 24. Memcache能否在PHP中存儲數據結構,例如splqueue?
- 25. 將appengine數據庫鍵值保存到memcache中
- 26. 從SQL DB中選擇特定值並將其存儲在shell變量中
- 27. 如何緩存memcache中的symfony部分?
- 28. Objectify是否將Query.fetchKeys結果緩存在memcache中?
- 29. 無法在ZF2中的Memcache中正確存儲SplQueue對象..?
- 30. Memcache中的Md5緩存鍵
感謝它正在工作,現在至少我可以開始工作了。這是啓動和易於理解的很好例子。 – 2011-12-20 12:59:12