2010-11-17 27 views
5

Chúng tôi đang trong quá trình mở rộng quy mô một trong các ứng dụng web của chúng tôi từ một máy chủ duy nhất đến một trang trại. Ứng dụng hiện đang sử dụng bộ nhớ cache thời gian chạy của Http để lưu trữ dữ liệu tham chiếu cho ứng dụng. Dữ liệu là 'giống' với danh mục sản phẩm:AppFabric Cache 'Thiết kế' - Caching Mục cá nhân hoặc Bộ sưu tập?

  • loại (tức là trong danh sách)
  • sản phẩm (ví dụ: Danh sách)

Khi dữ liệu được cập nhật rất thường xuyên, chúng tôi cũng sẵn tính toán một số tra cứu

  • ProductsByCategory (tức. từ điển)

T Bộ sưu tập của anh ta hiện đang được lưu trữ dưới dạng toàn bộ đối tượng ... tức là toàn bộ danh sách/từ điển được lấy và đặt. Các bộ sưu tập thường được sử dụng vì tôi thường cần điền các danh sách thả xuống/hộp danh sách/v.v.

Dữ liệu tham chiếu cần phải được đồng bộ trên các máy chủ trong trang trại. Nhập AppFabric ...

  1. Mô hình bộ nhớ đệm trên của chúng tôi vẫn phù hợp với bộ nhớ đệm AppFabric? Các ví dụ tôi đã gặp phải xuất hiện để đặt mục riêng lẻ trong bộ nhớ cache thay vì toàn bộ bộ sưu tập (với 'khu vực' được sử dụng cho hoạt động nhận hàng loạt)

  2. Cách tốt nhất, nếu có, để giữ tham chiếu dữ liệu được cập nhật 'cùng nhau' ... nghĩa là nếu các danh mục được làm mới, tôi cần các sản phẩm được làm mới để phản ánh các danh mục mới nhất.

Trả lời

2

Hỗ trợ thao tác kiểu put' số lượng lớn hơi bị giới hạn tại thời điểm này (đọc: không tồn tại). Nhưng một chút suy nghĩ cho thấy điều này có lẽ đúng - nếu bạn ném một bộ sưu tập các đối tượng vào bộ nhớ cache, nó sẽ không biết cách cung cấp cho họ các khóa hoặc thẻ có ý nghĩa (trong đó thêm một thời điểm nữa). Bạn có thể giả mạo nó với một phương pháp mở rộng chấp nhận một bộ sưu tập các đối tượng và xem có thể là một Tên hoặc Id bất động sản trên mỗi đối tượng để đưa các đối tượng vào bộ đệm, nhưng dưới nắp nó vẫn sẽ đun sôi xuống để đưa các đối tượng vào bộ nhớ cache cùng một lúc.

Để nhận một bộ đối tượng ra khỏi bộ nhớ cache, tuy nhiên, có một tùy chọn khác cho phương thức GetObjectsInRegion(regionname). Nếu, tại thời điểm đối tượng được chèn vào bộ nhớ cache, bạn thêm thẻ vào nó, ví dụ: cho một sản phẩm, gắn thẻ nó với danh mục, sau này bạn có thể lấy lại tất cả các đối tượng cho một thẻ cụ thể với phương thức GetObjectsByTag. Điều tuyệt vời (tôi nghĩ) về việc sử dụng thẻ là bạn có thể đặt bất kỳ số nào trong số chúng vào một đối tượng trong bộ nhớ cache, ví dụ: cho một sản phẩm, bạn có thể gắn thẻ nó với danh mục mà còn với nhà cung cấp và, ví dụ, một ban nhạc giá. Điều này giúp bạn linh hoạt hơn trong cách bạn có thể truy vấn các mục được lưu trong bộ nhớ cache của mình - bạn có thể truy vấn bằng bất kỳ thẻ riêng lẻ nào hoặc bạn có thể thực hiện các truy vấn VÀ/HOẶC với các phương pháp GetObjectsByAllTags/GetObjectsByAnyTag.

+0

Trong khi hữu ích để bao gồm thẻ, điều gì sẽ xảy ra nếu bạn cần tìm kiếm nâng cao hơn>

1

Tự mình gặp vấn đề tương tự. Sử dụng bộ nhớ cache cục bộ, sử dụng các thực thể riêng lẻ trong một khu vực và sử dụng gọi lại thông báo cấp vùng

Các vấn đề liên quan