2011-09-21 22 views
0

我正在開發一個應用程序在Java中託管在谷歌應用程序引擎中,我需要存儲用戶首選項(對象與10個字符串變量),直到他登錄。我會經常使用這些數據(每兩分鐘一次用戶)。我應該在memcache中使用數據存儲還是有其他可擴展的方式?我期望流量非常高(一次可能達到50000人)。可以一次將50000個對象存儲在內存緩存中嗎?如何在用戶只通過短信進行通信的應用中存儲用戶偏好?

這是一個短信應用程序,用戶只能通過短信進行交互。所以我不能使用會話存儲數據,因爲我的流量通過短信網關路由。

回答

2

是不是O.K.在memcache中存儲50,000個對象?當然,但正如其他人已經正確指出的那樣,這是一個緩存,所以你最終也將數據存儲在數據存儲中。

往後退,在交互式應用程序中使用memcache的一個重要原因是爲了更好的用戶體驗。如果您不得不將緩存從緩存中提取出來,您希望通過緩存來縮短響應時間,否則可能會引入明顯的延遲。

這是值得做一個短信應用程序?與SMS基礎設施的延遲相比,我敢打賭,memcachedatastore之間的時差幾乎不可衡量。

我會盡可能保持您的應用程序儘可能簡單,直到它工作,然後尋找優化機會。我認爲你會發現他們更多的是確保你在查詢中使用的屬性是無索引的,這樣你的寫入速度會更快。

0

將它存儲在會話中。 Memcache是​​一個緩存,不應該直接用於業務邏輯。

+0

忘了提及。它是一個短信應用程序,用戶只通過SMS進行交互。因此,我不能使用會話存儲數據,因爲我的流量通過SMS網關路由。 – ravi

+0

然後自己創建會話層/邏輯並使用數據庫(+ memcache)來存儲它。 – ZeissS

+0

感謝您的答覆。GAE中可以緩存memcached的對象的總大小是否有任何限制?例如100MB,因爲我期望流量非常高,而且我需要存儲一些50k的對象 – ravi

相關問題