簡體   English   中英

將用戶數據存儲在緩存中與每次查詢數據

[英]Storing User data in cache vs Querying data everytime

如果我在登錄時將所有用戶信息存儲在緩存中,並且只有一個“我的帳戶”頁面顯示緩存中的用戶信息,這是一個好習慣嗎? 我想知道如果一個人更改了他的電子郵件或進行了任何類型的數據庫修改,那么緩存的變量將是錯誤的變量。 如果每次數據庫發生問題時都必須更新高速緩存變量,那么與僅在需要時僅查詢數據相比,這是否是一種好習慣?

-謝謝

用戶信息數據將多久更改一次? 如果不是太頻繁,則可以使緩存具有滑動到期時間。

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

另請注意,由於每個用戶的用戶數據都不相同,因此您需要存儲與用戶登錄數量一樣多的用戶信息數據。

如果不緩存數據,是否會出現性能問題,並且每次都運行查詢? (您可能需要測量這一點才能發現)。 如果沒有,那么額外的復雜性和緩存失效問題(如您所述)意味着您可能應該只運行查詢。

更相關的問題是您多久使用一次用戶數據。 您是否需要訪問它:

  • 每一個要求
  • 只有會員頁面
  • 只是在某處顯示一個名字

如我所了解的那樣,如果它只是成員的頁面,那么最好打數據庫(如果沒有性能問題)。

如果要在其他地方或每個頁面上使用數據,則可能應該執行某種滑動過期緩存。 並通過更新操作使其無效。 如果您對每次插入高速緩存都遵循標准格式,那么使其無效就很容易了。

記住,要編寫代碼,就好像緩存將是空的一樣,打入db,插入到緩存中,然后返回用戶信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM