[英]How to use memcache or memcached in GAE php?
一段時間以來,我一直在使用GAE或Google App Engine for PHP,並使用基本的cloudSQL從中讀取數據。 由於已經過了幾個月並且為了進行優化,我想減少自動填充表格中用於從Table讀取名稱的讀取次數。 截至目前,它每天高達80k,對於一個簡單的表格來說,這是驚人的高。
由於Google不允許我在沒有存儲桶的情況下寫入文本文件或任何其他臨時文件(因此我沒有存儲桶。為什么我們需要一個存儲桶? ),我認為我使用了可以具有的緩存功能它每天刷新一次 ,然后從緩存而不是實際的Table中進行讀取查詢,從而減少了讀取次數。
那是我碰到牆了。 我是一個初學者,盡管經驗豐富的專業人士都可以理解這一點
https://developers.google.com/appengine/docs/php/memcache/#PHP_PHP_memcache_implementation
我不知道它在說什么。
誰能教我或告訴我如何使用GAE的緩存功能? 我嘗試搜索“如何”,但未找到。
我的自動完成功能如下所示
setAutoComplete("name", "results1", "autocomplete.php?part=");
因此,只要在鍵入關鍵字后在表單中輸入文本,它就會調用自動完成php。
它的SQL部分看起來像這樣
$sql = "SELECT SUBSTRING(NAME,1,300) AS Name FROM `Table` WHERE Name LIKE '{$p}%'";
// Check Query ran sucessfully
$query = mysql_query($sql) or die("Query failed: " . mysql_error() . " Actual query: " . $query);
//Create an array with the results
$results = array();
while ($user = mysql_fetch_object($query)) {
$results[] = $user -> Name;
}
//using JSON to encode the array
echo json_encode($results);
希望這能夠畫出清晰的圖案。 在此先感謝我和其他任何可能來這里尋求類似答案的人。
PS-我在閱讀PHP手冊並沒有太大幫助。
我使用了GAE支持的兩種內存緩存API(Memcache和Memcached)。這是Memcache代碼。(我假設您的查詢工作正常)
$data = array();
$key = 'memcahcetestkey';
$memcache = new Memcache;
$data = $memcache->get($key);
if ($data === false) {
$data = $results ;//yourQueryResult;
$memcache->set($key, $data);
}
然后使用$your_memecach_array=$memcache->get($key);
檢查您的內存緩存值$your_memecach_array=$memcache->get($key);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.