2011-05-31 74 views
3

簡單的問題,但不是那麼簡單的答案。如果我將用戶數據存儲到會話中,那麼我不必從MySQL數據庫獲取該數據。但那時數據可能會變得過時。如果我只在會話中存儲user_id,那麼每次都需要向數據庫詢問用戶信息,這可能會導致服務器速度變慢。 如果您有任何建議,請寫下來。我應該在會話中存儲用戶數據嗎?

謝謝:)。

+0

向會話中添加一個計數器/計時器以強制以某個設定的時間間隔刷新數據。每X頁或每Y分鐘。或者對修改緩存數據的數據庫版本的任何代碼非常小心,並讓該代碼同時更新會話。 – 2011-05-31 17:40:43

回答

7

通常我只是存儲密鑰,並且只有在性能成爲問題時纔開始緩存。只要您開始緩存數據,就會引入由於陳舊數據而導致的錯誤的可能性 - 您必須確保在您修改數據時使緩存失效。

但是,爲了確保我只在每個頁面請求中查詢一次(除非需要),我會對我的對象的實例執行緩存屬性。

相關問題