.NET Core加入分散式快取服務,以Redis為例

透過.NET Core內建的分散式快取介面,加入Redis快取服務

首先需要到NuGet安裝 Microsoft.Extensions.Caching.StackExchangeRedis 套件

接著在Startup.cs中加入快取服務

public void ConfigureServices(IServiceCollection services)
{
    services.AddStackExchangeRedisCache(options =>
    {
        //Redis連線字串
        options.Configuration = Configuration.GetConnectionString("Redis");
        //作為key的prefix
        options.InstanceName = "MyProject:";
    });
}

之後就可以在程式中使用快取功能了

class Foo
{
    private readonly IDistributedCache _cache;

    public Foo(IDistributedCache cache)
    {
        _cache = cache;
    }

    public void Set()
    {
        _cache.SetString("test", "values");
    }

    public void Get()
    {
        _cache.GetString("test");
    }
}

另外DistributedCache的快取到期時間設定分成兩種:

  • Absolute Expiration:到期時間以Set當下的時間起算
  • Sliding Expiration:以最後一次存取的時間點起算,如果有用Get去存取資料,就會重置到期timer

參考文章: