6

Ich bin zu Redis neu und verwenden VS 2015 und ASP.NET Kern app (V 1.0) verwendet wird, das I-Paket installiert Nugget:Redis Cache in ASP.NET Kern

Install-Package StackExchange.Redis 

jedoch nicht in der Lage bin ich zu inject und konfigurieren Sie es in meine Dienste, gibt es keine RedisCache oder "AddDistributedRedisCache" Methode.

Wie kann ich es injizieren und verwenden?

+0

Haben Sie wollte eigentlich 'Microsoft.Extensions.Caching verwenden können. Redis' stattdessen, die Out-of-the-Box-Redis-Unterstützung für verteiltes Caching ist? Es ist eine der 3 Standardimplementierungen von 'IDistrubutedCache' Schnittstelle https://github.com/aspnet/Caching/tree/1.0.0/src – Tseng

+0

Ich installierte ** Microsoft.Extensions.Caching.Redis ** im ersten Moment aber es ist nicht kompatibel mit .NET Core es benötigt Framework 4.5+ Ich denke. – Coding

+0

'StackExchange.Redis' enthält nur einen Redis-Client, der sich nicht selbst in ASP.NET Core implementiert. Aber die verteilte Caching-Implementierung von Microsoft verwendet 'Microsoft.Extensions.Caching.Redis', es ist nur ein Wrapper darum und die 'IDistrubtedCache'-Schnittstelle. github.com/aspnet/Caching/blob/dev/src/Microsoft.Extensions.Caching.Redis/RedisCache.cs – Tseng

Antwort

4

01.Download neueste redis von download, installieren und den redis Service von services.msc

02.Add zwei Bibliothek in project.json

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

03.Add starten Sie Injektion Abhängigkeits in

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

     services.AddMvc(); 
     //For Redis 
     services.AddSession(); 
     services.AddDistributedRedisCache(options => 
     { 
      options.InstanceName = "Sample"; 
      options.Configuration = "localhost"; 
     }); 
    } 
  1. und in Configure Verfahren Oberseite app.UseMvc

    app.UseSession() Zeile hinzufügen;

redis in Sitzungsspeicher in asp.net Kern verwenden .Jetzt Sie so in 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(); 
    } 
}