Sau khi tạo bằng chứng khái niệm cho trang ASP.NET MVC và đảm bảo việc tách mối quan tâm thích hợp đã được đặt ra, tôi nhận thấy rằng tôi đang thực hiện rất nhiều cuộc gọi cơ sở dữ liệu dư thừa thông tin về người dùng hiện tại.Caching dữ liệu người dùng để tránh các chuyến đi cơ sở dữ liệu dư thừa
Trong lịch sử máy tính để bàn và dịch vụ, ý tưởng đầu tiên của tôi là lưu vào bộ nhớ cache kết quả db trong một số static
giây. Nó đã không mất nhiều tìm kiếm để thấy rằng làm điều này sẽ tồn tại dữ liệu của người dùng hiện tại trên toàn bộ AppDomain cho tất cả người dùng.
Tiếp theo, tôi đã nghĩ đến việc sử dụng HttpContext.Current
. Tuy nhiên, nếu bạn đặt nội dung ở đây khi người dùng đăng xuất, thì khi họ đăng nhập vào dữ liệu đã lưu trong bộ nhớ cache của bạn sẽ lỗi thời. Tôi có thể cập nhật điều này mỗi lần đăng nhập/đăng xuất xảy ra nhưng tôi không thể nói nếu điều này cảm thấy đúng. Trong trường hợp không có ý tưởng khác, đây là nơi tôi đang nghiêng.
Cách nhẹ nhất để lưu trữ chính xác chi tiết người dùng và tránh phải thực hiện tấn cuộc gọi cơ sở dữ liệu là gì?
Bạn cần lưu trữ loại dữ liệu nào? Nếu nó chỉ là một vài thuộc tính đơn giản tức là Strings, Integers thì bạn chỉ có thể lưu trữ trong cookie biểu mẫu. – willbt