📜  cache trong mvc - C# (1)

📅  最后修改于: 2023-12-03 15:14:05.236000             🧑  作者: Mango

Caching trong MVC - C#

Trong những ứng dụng web, sử dụng caching là một cách tốt để cải thiện hiệu suất của ứng dụng. Trong MVC, bạn có thể sử dụng bộ nhớ cache để lưu trữ và truy xuất dữ liệu. Bài viết này sẽ đưa ra một số ví dụ về cách sử dụng caching trong MVC bằng ngôn ngữ lập trình C#.

Loại Cache trong C#

Trong C#, có hai loại cache:

  1. MemoryCache class: lưu trữ dữ liệu trong bộ nhớ và phục vụ nó từ đó.
  2. DistributedCache class: lưu trữ dữ liệu trên nhiều server hoặc quản lý thời gian sống cho các mục cache khác nhau.

Trong bài viết này, chúng ta sẽ tập trung vào sử dụng MemoryCache trong MVC.

Caching Key

Caching Key được sử dụng để tham chiếu đến một mục trong bộ nhớ cache. Nó là duy nhất và chỉ định cho từng phần cache. Ví dụ: một trang web truy xuất dữ liệu từ CSDL và sử dụng một cache key để lấy dữ liệu đã lưu trữ trước đó trong bộ nhớ cache.

string cacheKey = "products_cache_key";
Lưu trữ dữ liệu trong MemoryCache

Để lưu trữ dữ liệu trong MemoryCache, chúng ta có thể sử dụng phương thức Set. Ví dụ sau lưu trữ danh sách các sản phẩm trong bộ nhớ cache với khóa "products_cache_key" trong 10 phút.

List<Product> products = GetProductsFromDatabase();
MemoryCache memoryCache = MemoryCache.Default;
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(10);
memoryCache.Set("products_cache_key", products, policy);
Truy xuất dữ liệu từ MemoryCache

Để truy xuất dữ liệu từ MemoryCache, chúng ta có thể sử dụng phương thức Get. Ví dụ sau truy xuất danh sách sản phẩm từ bộ nhớ cache, nếu không có trong cache thì truy xuất từ CSDL và lưu vào bộ nhớ cache.

List<Product> products;
MemoryCache memoryCache = MemoryCache.Default;
string cacheKey = "products_cache_key";
if (memoryCache.Contains(cacheKey))
{
    products = (List<Product>)memoryCache.Get(cacheKey);
}
else
{
    products = GetProductsFromDatabase();
    CacheItemPolicy policy = new CacheItemPolicy();
    policy.AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(10);
    memoryCache.Set(cacheKey, products, policy);
}
Xóa một mục trong MemoryCache

Để xóa một mục trong MemoryCache, chúng ta có thể sử dụng phương thức Remove. Ví dụ sau xóa mục với khóa "products_cache_key" trong bộ nhớ cache.

MemoryCache memoryCache = MemoryCache.Default;
string cacheKey = "products_cache_key";
if (memoryCache.Contains(cacheKey))
{
    memoryCache.Remove(cacheKey);
}
Kết luận

Trong ứng dụng web MVC, sử dụng caching là một cách tốt để cải thiện hiệu suất của ứng dụng. Trong bài viết này, chúng ta đã thảo luận về cách sử dụng MemoryCache trong MVC bằng ngôn ngữ lập trình C#. Bằng cách sử dụng MemoryCache và các phương thức cơ bản, bạn có thể lưu trữ và truy xuất dữ liệu một cách hiệu quả, giúp tăng tốc độ truy cập và giảm tải cho máy chủ.