web-dev-qa-db-ja.com

ASP.NETCoreのRedisキャッシュ

私はRedisを初めて使用し、VS2015とASP.NETCoreアプリ(v 1.0)を使用して、ナゲットパッケージをインストールしました。

Install-Package StackExchange.Redis

ただし、サービスに挿入して構成することはできません。RedisCacheまたは "AddDistributedRedisCache"メソッドはありません。

どうすれば注入して使用できますか?

7
Hussein Salman

01.最新のredisを ダウンロード からダウンロードし、services.mscからredisサービスをインストールして開始します

02。project.jsonに2つのライブラリを追加します

"Microsoft.Extensions.Caching.Redis.Core": "1.0.3",
"Microsoft.AspNetCore.Session": "1.1.0",

03.依存性注入を追加します

public void ConfigureServices(IServiceCollection services)
    {
        services.AddApplicationInsightsTelemetry(Configuration);

        services.AddMvc();
        //For Redis
        services.AddSession();
        services.AddDistributedRedisCache(options =>
        {
            options.InstanceName = "Sample";
            options.Configuration = "localhost";
        });
  } 
  1. Configureメソッドでapp.UseMvc行の先頭を追加します

    app.UseSession();

asp.netコアのセッションストレージでredisを使用するには、HomeController.csで次のように使用できます。

public class HomeController : Controller
{
    private readonly IDistributedCache _distributedCache;
    public HomeController(IDistributedCache distributedCache)
    {
        _distributedCache = distributedCache;
    }
    //Use version Redis 3.22
    //http://stackoverflow.com/questions/35614066/redissessionstateprovider-err-unknown-command-eval
    public IActionResult Index()
    {
        _distributedCache.SetString("helloFromRedis", "world");
        var valueFromRedis = _distributedCache.GetString("helloFromRedis");
        return View();
    }
 }