ASP.NET Core中使用Redis实现缓存

2022-04-17 17:01:19
目录
一、前言二、安装StackExchange.Redis三、添加配置四、Redis帮助类五、添加服务依赖项六、在控制器中使用七、测试

一、前言

我们这里以StackExchange.Redis为例,讲解如何在ASP.NET Core中如何使用Redis实现缓存。首先需要安装Redis和RedisDesktopManager。RedisDesktopManager用来查看Redis缓存里面的数据。如何安装Redis这里不在讲述。

二、安装StackExchange.Redis

在NuGet上安装StackExchange.Redis,如下图所示:

ASP.NETCore中使用Redis实现缓存

 安装完成以后在依赖项里面就可以看到:

ASP.NETCore中使用Redis实现缓存

三、添加配置

 在appsettings.json文件里面添加Redis相关配置信息:

{  "Logging": {    "LogLevel": {      "Default": "Warning"    }  },  "AllowedHosts": "*",  "Redis": {    "Default": {      "Connection": "127.0.0.1:6379",      "InstanceName": "local",      "DefaultDB": 8    }  }}

四、Redis帮助类

 创建Redis帮助类,代码如下:

using StackExchange.Redis;using System;using System.Collections.Concurrent;namespace RedisDemo{    public class RedisHelper : IDisposable    {        //连接字符串        private string _connectionString;        //实例名称        private string _instanceName;        //默认数据库        private int _defaultDB;         private ConcurrentDictionary<string, ConnectionMultiplexer> _connections;        public RedisHelper(string connectionString, string instanceName, int defaultDB = 0)        {            _connectionString = connectionString;            _instanceNampNetCore.Mvc;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;namespace RedisDemo{    public class Startup    {        public Startup(IConfiguration configuration)        {            Configuration = configuration;        }        public IConfiguration Configuration { get; }        // This method gets called by the runtime. Use this method to add services to the container.        public void ConfigureServices(IServiceCollection services)        {            //redis缓存            var section = Configuration.GetSection("Redis:Default");            //连接字符串            string _connectionString = section.GetSection("Connection").Value;            //实例名称            string _instanceName = section.GetSection("InstanceName").Value;            //默认数据库             int _defaultDB = int.Parse(section.GetSection("DefaultDB").Value ?? "0");                       services.AddSingleton(new RedisHelper(_connectionString, _instanceName, _defaultDB));            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);        }        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.        public void Configure(IApplicationBuilder app, IHostingEnvironment env)        {            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            app.UseMvc();        }    }}

六、在控制器中使用

 新建一个控制器,然后通过构造函数注入:

using Microsoft.AspNetCore.Mvc;using StackExchange.Redis;namespace RedisDemo.Controllers{    [Route("api/redis")]    [ApiController]    public class RedisController : ControllerBase    {        private readonly IDatabase _redis;        public RedisController(RedisHelper client)        {            _redis = client.GetDatabase();        }        [HttpGet]        public string Get()        {            // 往Redis里面存入数据            _redis.StringSet("Name", "Tom");            // 从Redis里面取数据            string name = _redis.StringGet("Name");            return name;        }    }}

七、测试

运行程序,使用Postman测试控制器:

ASP.NETCore中使用Redis实现缓存

然后通过RedisDesktopManager查看Redis里面的数据,这里使用的Db8数据库:

ASP.NETCore中使用Redis实现缓存

到此这篇关于ASP.NET Core中使用Redis实现缓存的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。