2012-04-14 57 views
0

我正在研究一個web應用程序,並試圖瞭解memcached是如何工作的。每個用戶的查詢使用memcached

我的問題是關於如何使用memcached來獲得最佳結果。

在應用程序中,當每個用戶登錄時,sql查詢將檢查7-8個表並將結果以數組形式顯示。我正在考慮將這些數組緩存在memcached中。但它應該如何工作?

我應該緩存每個用戶在memcached中具有唯一鍵的數組嗎?

我該如何刷新數組?用cron工作還是什麼?

感謝您的意見提前。

回答

0

如果數據應由具有唯一密鑰的用戶緩存,則取決於數據對於該用戶是否唯一。如何刷新數組取決於數據如何改變。所以一般來說,你的問題是不可能回答的,在回答具體問題之前你需要閱讀一些教程。

假設你有函數的輸出只依賴於傳遞的參數,你可以從這些參數創建一個鍵(例如,這是一個獲取用戶數據的函數,你傳遞$ userId - 你的鍵可能是userdata/$用戶id),你可以緩存功能

function get_user_data($userId) { 
    $cacheKey = 'userdata/' . $userId; 
    $result = cache::instance()->get($cacheKey); 
    if ($result == false) { 
     // body of the function 
     cache::instance()->set($cacheKey, $result); 
    } 
    return $result; 
} 

至於無效,當某些數據已經改變的返回值,只是刪除從內存緩存

關鍵
相關問題