2011-02-01 39 views
2

如果我在登錄時將所有用戶信息存儲在緩存中,並且只有一個顯示緩存中用戶信息的「我的賬戶」頁面,那麼這是一種很好的做法嗎?我想知道一個人是否會更改他的電子郵件或進行任何類型的數據庫修改,那麼緩存的變量將是錯誤的。如果每次發生數據庫事件時都必須更新緩存變量,與僅僅在需要時查詢數據相比,這甚至是一個很好的做法嗎?將用戶數據存儲在緩存中vs每次查詢數據

- 感謝

回答

0

用戶信息數據將多久更改一次?如果不是太頻繁,則可以使緩存過期。

http://msdn.microsoft.com/en-us/library/aa478965.aspx

還要注意的是,由於用戶數據是爲每個用戶不同,你需要作爲用戶登錄到存儲用戶信息數據的儘可能多的量。

0

你得到的性能問題,如果數據沒有被緩存,並且你每次運行查詢? (你可能需要測量這個來找出)。如果沒有,額外的複雜性和緩存失效問題(如您所描述的)意味着您應該運行查詢。

0

更相關的問題是您多長時間使用用戶數據。你需要訪問它:每個請求

    • 只有會員頁面
    • 只是顯示一個名稱的地方

    如果它只是成員的頁面,就像我的瞭解,那麼它可能是最好的數據庫(如果沒有性能問題)。

    如果你在其他地方或每個頁面上使用數據,那麼你應該做一些滑動到期緩存。並從更新操作中使其無效。如果您堅持每次插入到緩存的標準格式,將很容易失效。

    請記住,要編寫緩存將爲空的代碼,請按數據庫,插入緩存並返回用戶信息。