Khi lập trình ứng dụng chúng ta hay gặp vấn đề làm sao cho tối ưu tài nguyên của hệ thống, tăng tốc độ trải nghiệm từ phía end user. Đặc biệt là các ứng dụng web.
Tip này hướng dẫn các bạn cách implement cache vào ứng dụng, sử dụng thư viện đã được wrap lại từ Memery Cache & Redis Cache
Đầu tiên tải về thư viện tại Nuget: https://www.nuget.org/packages/colorlife.tuanitpro.com/
Hoặc cài đặt trực tiếp trong Visual Studio
Tạo class Customer để test
public class Customer { public string FirstName { get; set; } public string LastName { get; set; } }
Sử dụng Memory Cache
private static void MemoryCache_Customer_Test() { ICacheProviderFactory cacheProvideractory = new CacheProviderFactory(); IDataCacheProvider dataCacheProvider = cacheProvideractory.CreateFactory(); Customer customer = new Customer { FirstName = "Tuan", LastName = "Le" }; string cacheKey = "Memory_Cache_Customer"; dataCacheProvider.Set(cacheKey, customer); Console.WriteLine("Before cache: " + customer.FirstName + " " + customer.LastName); Console.WriteLine("After Update: " + customer.FirstName + " " + customer.LastName); var customerInCache = dataCacheProvider.Get(cacheKey); Console.WriteLine("Get Customer In MemoryCache: " + customerInCache.FirstName + " " + customerInCache.LastName); }
Sử dụng Radis Cache
Đầu tiên tải Redis cho Windows & cài đặt tại: https://github.com/MicrosoftArchive/redis/releases
Code:
private static void RedisCache_Customer_Test() { ICacheProviderFactory cacheProvideractory = new CacheProviderFactory(new CacheProviderOptions { SlidingExpiration = TimeSpan.FromSeconds(30), ConnectionString = "localhost:6379" // mặc định }, CacheType.Redis); IDataCacheProvider dataCacheProvider = cacheProvideractory.CreateFactory(); Customer customer = new Customer { FirstName = "Tuan", LastName = "Le" }; string cacheKey = "RedisCache_Customer"; dataCacheProvider.Set(cacheKey, customer); Console.WriteLine("Before cache: " + customer.FirstName + " " + customer.LastName); Thread.Sleep(5000); customer.LastName = "Le_Updated"; Console.WriteLine("After Update: " + customer.FirstName + " " + customer.LastName); var customerInCache = dataCacheProvider.Get(cacheKey); Console.WriteLine("Customer In RedisCache: " + customerInCache.FirstName + " " + customerInCache.LastName); }
Thư viện còn hỗ trợ một số chức năng nho nhỏ khác, sẽ nói trong bài viết khác. Chúc các bạn thành công ?