2009-03-11 40 views

Trả lời

3

Nếu bạn đang yêu cầu về phương pháp cache Xử NHibernate, (NHibernate không lưu trữ/lấy dữ liệu bộ nhớ cache chính nó, chúng ta cần phải cấu hình nhà cung cấp bộ nhớ cache riêng rẽ để làm điều đó)

Do tính chất của các ứng dụng web (Multi Threaded Application), Chúng tôi không thể sử dụng Cache cấp độ đầu tiên. Nhưng chúng ta có thể sử dụng

  • Second Level cache
  • Query cache

Trong khi sử dụng bộ nhớ cache, nó có thể hiển thị dữ liệu cũ, trong những trường hợp sau đây

  • Khi dữ liệu được sửa đổi bởi khác nhau khách hàng, (ngoài ứng dụng khách ASP.Net)
  • Khi dữ liệu được sửa đổi bởi Triggers

Vì vậy, hãy nhớ xóa bộ nhớ cache, khi các trường hợp trên tồn tại.


Về nhà cung cấp Cache,

hỗ trợ Nhibernate nhiều nhà cung cấp bộ nhớ cache, Syscache, Syscache2, Memcache, HashTable vv .. tôi sử dụng Syscache, và nó hoạt động tốt. Vì tôi đã không làm việc trên các nhà cung cấp bộ nhớ cache khác, tôi không thể so sánh chúng.

Cũ và Chỉ tài liệu cho Nhibernate Caches http://www.hibernate.org/hib_docs/nhibernate/1.2/reference/en/html/caches.html

More Docs Best place for NHibernate documentation?

-1

Bộ nhớ cache tốt nhất để sử dụng? Bạn có nghĩa là loại bộ nhớ cache? Hoặc nền tảng bộ nhớ cache?

Có tích hợp HttpRuntime.Cache. Tùy thuộc vào ứng dụng của bạn cho những gì cần lưu vào bộ nhớ cache.

+0

Anh ấy có nghĩa là bộ nhớ cache cấp 2 NHibernate, không phải là bộ nhớ cache của ứng dụng chung. – UpTheCreek

11

HashTable là mặc định tích hợp cung cấp bộ nhớ cache. Bạn nên sử dụng không để sử dụng tính năng này.

  • SysCache sử dụng System.Web.Caching.Cache là nhà cung cấp bộ nhớ cache
  • SysCache2 về cơ bản là giống nhau ngoại trừ nó cũng hỗ trợ SQL phụ thuộc dựa trên hết hạn. Nó đòi hỏi MSSQL 2000+.

Trong hầu hết các trường hợp (không phải webfarm), nhà cung cấp SysCache phải đủ tốt.

Để biết thêm thông tin, hãy xem documentation on NHibernate.Caches

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