簡體   English   中英

如何在GAE PHP中使用memcache或memcached?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM