redisasp.net-corestackexchange.redisdistributed-caching

Redis Cache in ASP.NET Core


I am new to Redis and using VS 2015 and the ASP.NET Core app (v 1.0), I installed the nugget package:

Install-Package StackExchange.Redis

However I am not able to inject and configure it into my services, there is no RedisCache or "AddDistributedRedisCache" method.

How can I inject and use it?


Solution

  • 01.Download latest redis from download ,install and start the redis service from services.msc

    02.Add two library in project.json

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

    03.Add you dependency injection 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. and in Configure method add top of app.UseMvc line

      app.UseSession();

    to use redis in session storage in asp.net core .Now you can use like this 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();
        }
     }