2009-09-10 119 views
1

據我所知,memcached運行在內存中,並沒有持久的後備存儲。如何使用數據庫實現memcached?

目前我的團隊尚未準備好使用memcached。

所以,我打算寫一個簡單的數據庫支持的替代方案。

我的問題是類似的靜脈非常本的其他問題

Concurrent logins in a web farm

我的web應用程序有明確的條目(登錄)和出口(註銷)點。

計劃:

  1. 在登錄時,我會添加用戶ID到一個表。
  2. 在註銷時,我將刪除包含用戶標識的行。

問題:

是否有一個用得好,方法在MySQL超時行?通過方法,我的意思是一個最佳實踐。一旦達到超時,該行就被刪除。

回答

2

已經存在的內存緩存變體是持久:

http://memcachedb.org/

還檢查了東京櫃:http://1978th.net/這理應是要快得多

[R

編輯: 重讀你的題。讓我補充一點: 實現timetolive的方法,只是添加一個時間戳列到您的數據庫。 下次獲取緩存項目時,請檢查時間戳記是否過舊,並在此時刪除條目,獲取全新副本,並將其放回到數據庫緩存中並顯示當前時間戳記

這是也順便內存緩存做它

+0

感謝。這正是我所需要知道的。我聽說過有關這些nosql數據庫的許多奇妙的事情,但是我擔心將東京內閣,Redis等等引入到我的架構中會對團隊造成太大的干擾。 – 2009-09-10 09:46:43

1

不知道什麼ü由

意味着有一個很好用的方法來超時 MySQL中的行?

我們使用內存緩存作爲基於對象緩存的裝置,它可以被設置爲一個傳輸TimeToLive值

爲例如.;

MemcachedClient c= // get memcachedclient reference... 

     if (c != null) { 
      c.set(key, timeToLiveInSeconds, objectToCache); 
     } 

後在規定的時間內將被刪除自動