ASP.NET Core教程:ASP.NET Core中使用Redis缓存 参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html 一、前言 二、安装StackExchange.Redis 三、添加配置 四、Redis帮助类 五、添加服务依赖项 六、在控制器中使用 七、测试

一、前言

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

二、安装StackExchange.Redis

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

三、添加配置

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Redis": {
    "Default": {
      "Connection": "127.0.0.1:6379",
      "InstanceName": "local",
      "DefaultDB": 8
    }
  }
}
ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

四、Redis帮助类

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.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;
            _instanceName = instanceName;
            _defaultDB = defaultDB;
            _connections = new ConcurrentDictionary<string, ConnectionMultiplexer>();
        }

        /// <summary>
        /// 获取ConnectionMultiplexer
        /// </summary>
        /// <returns></returns>
        private ConnectionMultiplexer GetConnect()
        {
            return _connections.GetOrAdd(_instanceName, p => ConnectionMultiplexer.Connect(_connectionString));
        }

        /// <summary>
        /// 获取数据库
        /// </summary>
        /// <param name="configName"></param>
        /// <param name="db">默认为0:优先代码的db配置,其次config中的配置</param>
        /// <returns></returns>
        public IDatabase GetDatabase()
        {
            return GetConnect().GetDatabase(_defaultDB);
        }

        public IServer GetServer(string configName = null, int endPointsIndex = 0)
        {
            var confOption = ConfigurationOptions.Parse(_connectionString);
            return GetConnect().GetServer(confOption.EndPoints[endPointsIndex]);
        }

        public ISubscriber GetSubscriber(string configName = null)
        {
            return GetConnect().GetSubscriber();
        }

        public void Dispose()
        {
            if (_connections != null && _connections.Count > 0)
            {
                foreach (var item in _connections.Values)
                {
                    item.Close();
                }
            }
        }
    }
}
ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

五、添加服务依赖项

 在Startup.cs类的ConfigureServices方法里面添加服务注入:

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.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();
        }
    }
}
ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

六、在控制器中使用

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
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;
        }
    }
}
ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

七、测试

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

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

ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

 
  • 相关阅读:
    leetcode 10 正则表达式匹配(c++)
    基于.NetCore3.1系列 —— 日志记录之初识Serilog
    AspNetCore WebApi:Serilog(日志)
    .NET Core下的日志(3):如何将日志消息输出到控制台上
    Asp.Net Core用NLog记录日志操作方法
    .NET Core3.0 日志 logging-最好用的日志集合介绍
    .net core 3.1 使用nlog记录日志 NLog.Web.AspNetCore
    NetCore3.1 日志组件 Nlog的使用
    配置 ASP.NET Core 请求(Request)处理管道
    vue进入页面每次都调用methods里的方法
  • 原文地址:https://www.cnblogs.com/bruce1992/p/15085980.html
  • 一、前言

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

    二、安装StackExchange.Redis

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

    三、添加配置

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
    {
      "Logging": {
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "AllowedHosts": "*",
      "Redis": {
        "Default": {
          "Connection": "127.0.0.1:6379",
          "InstanceName": "local",
          "DefaultDB": 8
        }
      }
    }
    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

    四、Redis帮助类

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.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;
                _instanceName = instanceName;
                _defaultDB = defaultDB;
                _connections = new ConcurrentDictionary<string, ConnectionMultiplexer>();
            }
    
            /// <summary>
            /// 获取ConnectionMultiplexer
            /// </summary>
            /// <returns></returns>
            private ConnectionMultiplexer GetConnect()
            {
                return _connections.GetOrAdd(_instanceName, p => ConnectionMultiplexer.Connect(_connectionString));
            }
    
            /// <summary>
            /// 获取数据库
            /// </summary>
            /// <param name="configName"></param>
            /// <param name="db">默认为0:优先代码的db配置,其次config中的配置</param>
            /// <returns></returns>
            public IDatabase GetDatabase()
            {
                return GetConnect().GetDatabase(_defaultDB);
            }
    
            public IServer GetServer(string configName = null, int endPointsIndex = 0)
            {
                var confOption = ConfigurationOptions.Parse(_connectionString);
                return GetConnect().GetServer(confOption.EndPoints[endPointsIndex]);
            }
    
            public ISubscriber GetSubscriber(string configName = null)
            {
                return GetConnect().GetSubscriber();
            }
    
            public void Dispose()
            {
                if (_connections != null && _connections.Count > 0)
                {
                    foreach (var item in _connections.Values)
                    {
                        item.Close();
                    }
                }
            }
        }
    }
    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

    五、添加服务依赖项

     在Startup.cs类的ConfigureServices方法里面添加服务注入:

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.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();
            }
        }
    }
    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

    六、在控制器中使用

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试
    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;
            }
        }
    }
    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

    七、测试

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试

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

    ASP.NET Core教程:ASP.NET Core中使用Redis缓存
参考网址:https://www.cnblogs.com/dotnet261010/p/12033624.html
一、前言
二、安装StackExchange.Redis
三、添加配置
四、Redis帮助类
五、添加服务依赖项
六、在控制器中使用
七、测试