ASP.NET Core使用Redis

原创 Laughing  2017-11-25 17:35  阅读 455 次 评论 0 条

Redis是优秀的缓存组件,我们在DotNetCore中也能够很方便的使用。本文主要介绍在虚拟机安装Window Server作为缓存服务器进行简单使用的方法。

使用准备

为了使用Redis,我们需要一个缓存服务器,这里我们所有的东西都是通过Nuget的方式进行安装的。

需要注意的是,Redis官方没有Win版本的,但是我们可以使用微软第三方的

我们首先需要安装一下的Nuget包

  • Microsoft.AspNetCore.Session
  • Microsoft.AspNetCore.Http.Extensions
  • Microsoft.Extensions.Caching.Redis
  • Redis-64
其中Redis位于C:\Users\Administrator\.nuget\packages\redis-64

将Redis-64文件夹拷贝到服务器,然后打开\3.0.503\tools\redis-server.exe 开启Redis

配置连接信息

打开appsettings.json,加入如下信息

  1. "Redis": "192.168.56.101:6379,abortConnect=false,connectRetry=3,connectTimeout=3000,defaultDatabase=1,syncTimeout=3000,version=3.2.1,responseTimeout=3000",  

修改stratup.cs

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Threading.Tasks;  
  5. using Microsoft.AspNetCore.Builder;  
  6. using Microsoft.AspNetCore.Hosting;  
  7. using Microsoft.Extensions.Configuration;  
  8. using Microsoft.Extensions.DependencyInjection;  
  9. using Microsoft.AspNetCore.Http;  
  10. using me.lisen.FrameworkCore.Util.SessionHelper;  
  11.   
  12. namespace me.lisen.Application.WebUI  
  13. {  
  14.     public class Startup  
  15.     {  
  16.         public Startup(IConfiguration configuration)  
  17.         {  
  18.             Configuration = configuration;  
  19.         }  
  20.   
  21.         public IConfiguration Configuration { get; }  
  22.   
  23.         // This method gets called by the runtime. Use this method to add services to the container.  
  24.         public void ConfigureServices(IServiceCollection services)  
  25.         {  
  26.             services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();  
  27.             services.AddSingleton<SessionHelper>();  
  28.             string redisConnection = Configuration.GetSection("Redis").Value;  
  29.             services.AddSession();  
  30.             services.AddDistributedRedisCache(option=>option.Configuration=redisConnection);  
  31.             services.AddMvc();  
  32.             services.AddOptions();  
  33.         }  
  34.   
  35.         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.  
  36.         public void Configure(IApplicationBuilder app, IHostingEnvironment env)  
  37.         {  
  38.             if (env.IsDevelopment())  
  39.             {  
  40.                 app.UseDeveloperExceptionPage();  
  41.                 app.UseBrowserLink();  
  42.             }  
  43.             else  
  44.             {  
  45.                 app.UseExceptionHandler("/Home/Error");  
  46.             }  
  47.   
  48.             app.UseStaticFiles();  
  49.             app.UseSession();  
  50.             app.UseMvc(routes =>  
  51.             {  
  52.                 routes.MapRoute(  
  53.                     name: "default",  
  54.                     template: "{controller=Home}/{action=Index}/{id?}");  
  55.             });  
  56.         }  
  57.     }  
  58. }  

修改控制器,写入缓存

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Threading.Tasks;  
  5. using Microsoft.AspNetCore.Mvc;  
  6. using me.lisen.FrameworkCore.Util.Extension;  
  7. using me.lisen.FrameworkCore.Util.SessionHelper;  
  8. using Microsoft.Extensions.Caching.Distributed;  
  9.   
  10. namespace me.lisen.Application.WebUI.Controllers  
  11. {  
  12.     public class HomeController : Controller  
  13.     {  
  14.         private IDistributedCache cache;  
  15.         public HomeController(IDistributedCache cache)  
  16.         {  
  17.             this.cache = cache;  
  18.         }  
  19.   
  20.         [HttpGet]  
  21.         public IActionResult Index()  
  22.         {  
  23.             cache.SetString("name","lisen");  
  24.             ViewBag.name = cache.GetString("name");  
  25.             return View();  
  26.         }  
  27.   
  28.         public IActionResult Index2()  
  29.         {  
  30.             ViewBag.name = cache.GetString("name");  
  31.             return View();  
  32.         }  
  33.     }  
  34. }  

查看缓存

我们通过/Home/Index 写入缓存,然后通过 /Home/Index2 可以读取缓存

或者我们可以通过RedisDesktopManager进行查看,如下

本文地址:https://www.lisen.me/asp-net-core-uses-redis.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情