6

Je suis nouveau à Redis et en utilisant en utilisant VS 2015 et ASP.NET application de base (version 1.0), j'ai installé le paquet pépite:Redis Cache dans ASP.NET base

Install-Package StackExchange.Redis 

Cependant, je ne suis pas en mesure de injecter et configurer dans mes services, il n'y a pas RedisCache ou "AddDistributedRedisCache" méthode.

Comment puis-je injecter et utiliser?

+0

Est-ce que vous vouliez réellement utiliser 'Microsoft.Extensions.Caching. Redis' à la place, qui est le support Redis prêt à l'emploi pour la mise en cache distribuée? C'est l'une des 3 implémentations par défaut de l'interface 'IDistrubutedCache' https://github.com/aspnet/Caching/tree/1.0.0/src – Tseng

+0

J'ai installé ** Microsoft.Extensions.Caching.Redis ** au premier moment mais ce n'est pas compatible avec. NET Core, il faut Framework 4.5+ je suppose. – Coding

+0

'StackExchange.Redis' contient uniquement un client Redis, il ne s'incorpore pas dans ASP.NET Core. Mais l'implémentation de la mise en cache distribuée de Microsoft utilise 'Microsoft.Extensions.Caching.Redis', c'est juste une enveloppe autour de celle-ci et l'interface' IDistrubtedCache'. github.com/aspnet/Caching/blob/dev/src/Microsoft.Extensions.Caching.Redis/RedisCache.cs – Tseng

Répondre

4

01.Download dernières Redis de download, installer et démarrer le service Redis de services.msc

02.Add deux bibliothèque project.json

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

03.Add vous injection de dépendance dans

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

     services.AddMvc(); 
     //For Redis 
     services.AddSession(); 
     services.AddDistributedRedisCache(options => 
     { 
      options.InstanceName = "Sample"; 
      options.Configuration = "localhost"; 
     }); 
    } 
  1. et dans Configure méthode ajouter top de app.UseMvc ligne

    app.UseSession();

à utiliser Redis dans le stockage de la session dans le noyau de asp.net .Maintenant vous pouvez utiliser comme ça dans 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(); 
    } 
}