Tôi đang sử dụng không gian tên bộ đệm .NET 4.0 mới: System.Runtime.Caching
.Làm thế nào để kiểm tra các chính sách bộ đệm ẩn bên trong System.Runtime.Caching.ObjectCache?
Bây giờ, tôi chỉ đang làm một số nguyên mẫu/không quan trọng với API mới, để tìm ra cách phù hợp nhất cho ứng dụng thực.
Phù hợp với điều đó, tôi đang cố gắng để tạo ra một trang (ASP.NET MVC) mà về cơ bản bãi ra tất cả mọi thứ trong bộ nhớ cache, đặc biệt là các thông tin sau:
- cache chính
- cache Object
- cache chính sách (ngày hết hạn, vv)
- Dependencies cache (nếu có)
Tuy nhiên, tôi dường như không thể có được bất cứ điều gì ngoại trừ khóa/đối tượng.
Dưới đây là đoạn code tôi hiện đang chơi với:
public ActionResult Index()
{
var cache = MemoryCache.Default;
// i can get the list of cache keys like this:
var cacheKeys = cache.Select(kvp => kvp.Key).ToList();
// i can also get a strongly-typed "CacheItem" like this:
CacheItem item = cache.GetCacheItem("someKey");
}
tôi sẽ hy vọng lớp "CacheItem" sẽ phơi bày những thông tin tôi yêu cầu (hết hạn, phụ thuộc, vv - ít nhất là "thu khí") .
Nhưng không. Tất cả những gì nó có là thuộc tính cho khóa, giá trị và tên vùng.
Làm cách nào tôi có thể kiểm tra các mục trong bộ nhớ cache và nhổ thông tin tôi yêu cầu?
Có không gian tên/lớp tôi đang thiếu không?
EDIT
Hình như có một lớp ChangeMonitor, nhưng một lần nữa - điều này không cho thông tin hết hạn, nó chỉ cho phép bạn đăng ký vào các sự kiện khi mục bộ nhớ cache được loại bỏ.
Có phải là cách để chỉ lấy các mục trong bộ nhớ cache và khi chúng hết hạn.
EDIT 2
Không biết nếu điều này nên là một câu hỏi riêng biệt, mà còn - tôi bối rối như những gì cuộc đời tôi nên cho ObjectCache tôi. MSDN nói nó không phải là một singleton, và bạn có thể tạo ra nhiều cá thể ObjectCache. Điều đó có nghĩa là gì mặc dù, tôi phải sử dụng một singleton hoàn toàn bị khóa khi truy cập vào dụ ObjectCache?
Yup, tôi đã nghĩ về điều này.Có lẽ chỉ cho prototyping, tôi sẽ làm điều này - sau đó thay đổi mã trở lại bình thường khi im hoàn thành. Tuy nhiên, tôi đã hy vọng cho một chương trình theo dõi bộ nhớ cache nhẹ trên máy chủ sống - có vẻ như nó sẽ không thể. – RPM1984