如何使用 Services.AddDistributedMemoryCache

yinghualeihenmei發表於2024-07-01

參考資料:https://www.cnblogs.com/RainFate/p/16920591.html

AI生成:

在.NET Core中,Services.AddDistributedMemoryCache()方法用於註冊分散式記憶體快取。這是一個記憶體中的快取解決方案,適用於需要在多個伺服器或服務之間共享快取資料的分散式系統。

如何使用AddDistributedMemoryCache來配置分散式記憶體快取。

解決方案:

首先,你需要在你的Startup.cs檔案中的ConfigureServices方法中新增AddDistributedMemoryCache。

public void ConfigureServices(IServiceCollection services)
{
    services.AddDistributedMemoryCache();
    // ...
}

  2、然後,你可以透過依賴注入獲取IDistributedCache介面的例項,並使用它來儲存和檢索快取資料。

public class HomeController : Controller
{
    private readonly IDistributedCache _cache;
 
    public HomeController(IDistributedCache cache)
    {
        _cache = cache;
    }
 
    public IActionResult Index()
    {
        // 儲存資料到快取
        _cache.SetString("myKey", "myValue");
 
        // 從快取中獲取資料
        string value = _cache.GetString("myKey");
 
        // ...
    }
}

  

在上述程式碼中,_cache.SetString("myKey", "myValue")用於將一個鍵值對儲存到快取中,而_cache.GetString("myKey")則用於從快取中檢索鍵對應的值。

注意:AddDistributedMemoryCache預設使用記憶體作為儲存,但它可以透過配置連線到其他型別的後端儲存,例如Redis或SQL Server。如果你需要將快取資料儲存到其他型別的儲存,你需要進行額外的配置。

例如,如果你想使用Redis作為分散式快取的儲存,你需要安裝Microsoft.Extensions.Caching.Redis包,然後在ConfigureServices方法中配置它:

public void ConfigureServices(IServiceCollection services)
{
    services.AddStackExchangeRedisCache(options =>
    {
        options.Configuration = "localhost";
        options.InstanceName = "SampleInstance";
    });
    // ...
}

  在這個例子中,我們使用AddStackExchangeRedisCache來配置Redis作為分散式快取的儲存。這樣,所有伺服器例項都將共享Redis中的快取資料。