我正在使用Spring 3.1在Google App Engine上運行一個Web服務servlet,由於我對這個遊戲很新,所以我根本不知道應該如何緩存。看起來有好幾個地方我可以在servlet的整個生命週期中保留這些東西:如何緩存我的servlet的東西?
- 應用程序上下文。在這裏定義bean將允許我輕鬆地將它們注入到我的代碼中。這看起來像是最簡單的解決方案,只是將我的bean限制爲單例。
- Servlet上下文。爲此,當我的servlet啓動時,我可以通過抓取它的實例並執行
setAttribute()
來將事情放入ServletContext中。 - Memcache。我還沒有看過這麼多,但我想我只會得到一個緩存實例,並像ServletContext一樣向它推入一個對象。
我很好奇的具體情況是創建用戶帳戶。我想保留所有用戶ID的HashSet,以便我可以檢查請求的用戶ID是否已被使用。
除了上面的具體情況,包括使用每種不同的技術的情況下,將不勝感激。
請注意,1和2實際上是相同的。在平均的基於servlet的MVC框架中,「應用程序上下文」在所涵蓋的servlet上下文屬性下使用。這只是一個額外的抽象層。 – BalusC
我不認爲將所有用戶ID存儲在HashMap緩存中是個不錯的主意。首先,這不會水平放大。其次,您需要同步讀取/寫入它以確保沒有競爭條件。 – Andy