iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET Core中使用Redis实现缓存
  • 412
分享到

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

2024-04-02 19:04:59 412人浏览 安东尼
摘要

目录一、前言二、安装StackExchange.Redis三、添加配置四、Redis帮助类五、添加服务依赖项六、在控制器中使用七、测试一、前言 我们这里以StackExchange.

一、前言

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

二、安装StackExchange.Redis

在NuGet上安装StackExchange.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;
            _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();
                }
            }
        }
    }
}

五、添加服务依赖项

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

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();
        }
    }
}

六、在控制器中使用

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

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测试控制器:

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

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

--结束END--

本文标题: ASP.NET Core中使用Redis实现缓存

本文链接: https://www.lsjlt.com/news/143545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core中使用Redis实现缓存
    目录一、前言二、安装StackExchange.Redis三、添加配置四、Redis帮助类五、添加服务依赖项六、在控制器中使用七、测试一、前言 我们这里以StackExchange....
    99+
    2022-11-13
  • Redis数据库基础与ASP.NET Core缓存实现
    目录基础Redis 库连接 Redis能用 redis 干啥Redis 数据库存储字符串订阅发布RedisValueASP.NET Core 缓存与分布式缓存内存中的缓存ASP.NE...
    99+
    2022-11-13
  • ASP.NET Core中的Http缓存使用
    Http响应缓存可减少客户端或代理对web服务器发出的请求数。响应缓存还减少了web服务器生成响应所需的工作量。响应缓存由Http请求中的header控制。 而ASP.NET ...
    99+
    2022-06-07
    ASP.NET net HTTP core ASP
  • odoo中怎么使用redis实现缓存
    本篇内容主要讲解“odoo中怎么使用redis实现缓存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“odoo中怎么使用redis实现缓存”吧!Odoo中使用Redis实现缓存可以提高系统性能,避...
    99+
    2023-07-05
  • Asp.net Core 3.1基于AspectCore实现AOP实现事务、缓存拦截器功能
    最近想给我的框架加一种功能,就是比如给一个方法加一个事务的特性Attribute,那这个方法就会启用事务处理。给一个方法加一个缓存特性,那这个方法就会进行缓存。 这个也是网上说...
    99+
    2022-06-07
    ASP.NET 拦截器 net aop core 缓存 事务 ASP
  • odoo中使用redis实现缓存的步骤
    Odoo中使用Redis实现缓存可以提高系统性能,避免频繁的数据库查询。下面是利用Redis实现Odoo缓存的步骤:       1、安装Redis 首先需要安装Redis数据库。可以参考官...
    99+
    2023-04-07
    odoo redis缓存 redis缓存
  • 使用注解实现Redis缓存功能
    本文实例为大家分享了使用注解实现Redis缓存功能的具体代码,供大家参考,具体内容如下 非关系型内存数据库,有持久化操作, C语言编写的key,value存储系统(区别于mysql的二维表格的形式存储。) rdb:周期性...
    99+
    2022-07-28
    Redis 注解 缓存
  • SpringBoot使用Redis实现分布式缓存
    目录springboot使用Redis实现分布式缓存Redis实现主从复制Redis集群的构建 springboot使用Redis实现分布式缓存 1、环境构建 ​ 1.1 ...
    99+
    2023-05-14
    Java Springboot使用Redis分布式缓存 Redis分布式缓存 Springboot分布式缓存
  • ASP.NET Core中使用令牌桶限流的实现
    在限流时一般会限制每秒或每分钟的请求数,简单点一般会采用计数器算法,这种算法实现相对简单,也很高效,但是无法应对瞬时的突发流量。 比如限流每秒100次请求,绝大多数的时间里都不会超过...
    99+
    2022-11-12
  • Spring项目中使用Cache Redis实现数据缓存
    目录Spring项目中实现数据缓存一、Spring Cache + Redis 介绍二、项目中集成1. 引入依赖2. 添加 redis 配置类3. 配置文件增加 redis 配置4....
    99+
    2022-11-13
  • 如何使用redis实现分布式缓存
    本文小编为大家详细介绍“如何使用redis实现分布式缓存”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用redis实现分布式缓存”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识...
    99+
    2022-10-19
  • ASP.NET Core中使用MialKit实现邮件发送功能
    具体代码如下所示: # 导包   首先我们需要导入 MailKit NuGet包,NuGet安装包命令在下方拓展介绍中。 # 引用命名空间 using MailKit.Net...
    99+
    2022-06-07
    net ASP.NET core 邮件 ASP
  • ASP.NET Core如何使用AutoMapper实现实体映射
    这篇文章将为大家详细讲解有关ASP.NET Core如何使用AutoMapper实现实体映射,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言在实际的项目开发过程中,我们使用各种ORM框架可...
    99+
    2023-06-29
  • 在Spring Boot中使用注解如何实现Redis 缓存
    在Spring Boot中使用注解如何实现Redis 缓存?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、创建 Caching 配置类RedisKeys.Javapackag...
    99+
    2023-05-31
    springboot redis 注解
  • 详解Spring Boot使用redis实现数据缓存
    基于spring Boot 1.5.2.RELEASE版本,一方面验证与Redis的集成方法,另外了解使用方法。集成方法配置依赖修改pom.xml,增加如下内容。 <dependency> <groupId>...
    99+
    2023-05-31
    spring boot redis
  • nodejs如何使用redis作为缓存介质实现封装缓存类
    小编给大家分享一下nodejs如何使用redis作为缓存介质实现封装缓存类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下...
    99+
    2022-10-19
  • PHP中如何使用Redis缓存?
    随着互联网和移动互联网的快速发展,Web应用程序开发变得越来越流行。在网络应用程序中,缓存的存在是必不可少的,因为它可以极大地提高应用程序的性能和响应时间。Redis是一个流行的开源缓存和键值数据存储。在本文中,我们将介绍如何在PHP中使用...
    99+
    2023-05-15
    缓存 PHP redis
  • asp.net core 使用 tensorflowjs实现 face recognition的源代码
    功能描述 上传照片文件名及是系统要识别标签或是照片的名称(人物标识) 提取照片脸部特征值(调用 facemesh模型) 保存特征值添加样本(调用 knnC...
    99+
    2022-11-12
  • ASP.net core使用Autofac实现泛型依赖注入
    目录什么是泛型依赖注入.net core里实现泛型依赖注入安装AutofacIMyRepository定义仓储接口MyRepositoryBase仓储实现在Program声明实现依赖...
    99+
    2022-11-13
  • 利用ASP.Net Core中的Razor实现动态菜单
    目录准备1.实现思路2.编码2.1  建立渲染内容填充方法2.2  建立分部视图2.3 调用分布视图准备 1.框架 .netcore  版本 ...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作