說到內存緩存大家可能立馬想到了HttpRuntime.Cache,它位於System.Web命名空間下,但是在ASP.NET Core中System.Web已經不復存在。今兒個就簡單的聊聊如何在ASP.NET Core中使用內存緩存。我們一般將經常訪問但是又不是經常改變的數據放進緩存是再好不過了,這樣可以明顯提高應用程序的性能。關於MemoryCache在Github上的地址:https://github.com/aspnet/Caching 總共有4個項目
第一個項目是緩存的抽象,其他三個是不同的類型Memory,Redis,SqServer
首先需要在ConfigureServices中註冊緩存服務
public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); services.AddMvc(); }
在下面的代碼中從Home控制器的構造函中獲取IMemoryCache實例
public class HomeController : Controller { private IMemoryCache _cache; public HomeController(IMemoryCache memoryCache) { _cache = memoryCache; } }
關於緩存的使用常用的就是Set Get Remove,有人喜歡把這些代碼封裝到單獨的類庫中,我覺得沒有必要,它可以直接在我們的Web項目中直接使用,而且IMemory向外的提供的擴展方法就是最好的封裝
設置緩存 Set
_cache.Set("key", "value");
獲取緩存 Get
var result = _cache.GetOrCreate("myKey", (entry) => { entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(120); return DateTime.Now.ToString(); });
移除緩存 Remove
_cache.Remove("key");