架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 27229|回复: 1

[.NET Core] ASP.NET Core(一)使用 Redis 缓存

[复制链接]
发表于 2020-9-22 18:47:34 | 显示全部楼层 |阅读模式
以前写了很多关于 ASP.NET Core 的文章,如下:

ASP.NET Core 获取当前 URL 相对路径
https://www.itsvse.com/thread-9389-1-1.html

ASP.NET Core 使用 Autofac 属性注入 NullReferenceException 异常分析
https://www.itsvse.com/thread-9384-1-1.html

ASP.NET Core 3.1 调用 .NET 4.0 WCF 服务教程
https://www.itsvse.com/thread-9313-1-1.html

Ocelot 系列(一)ASP.NET Core 网关实战
https://www.itsvse.com/thread-9284-1-1.html

ASP.NET Core 使用 MediatR 中介者模式
https://www.itsvse.com/thread-9272-1-1.html

ASP.NET Core 视图使用 Blazor 之图片验证码
https://www.itsvse.com/thread-9143-1-1.html

asp.net core 中下载 exe 文件返回 404 错误解决方案
https://www.itsvse.com/thread-9026-1-1.html

asp.net core 注册全局 Authorize 身份认证
https://www.itsvse.com/thread-9022-1-1.html

Asp.net core 模型数据验证
https://www.itsvse.com/thread-9016-1-1.html

ASP.NET Core 3.0 Web 修改 Razor 视图不刷新
https://www.itsvse.com/thread-8996-1-1.html

ASP.NET Core MVC 内存缓存使用教程
https://www.itsvse.com/thread-8861-1-1.html

ASP.NET Core 3.0 Nuget还原失败
https://www.itsvse.com/thread-8858-1-1.html

【实战】ASP.NET Core 中使用 gRPC 通信
https://www.itsvse.com/thread-8834-1-1.html

ASP.NET Core 中间件(Middleware)详解
https://www.itsvse.com/thread-8126-1-1.html

asp.net core 写个中间件来记录接口耗时
https://www.itsvse.com/thread-8079-1-1.html

【实战】ASP.NET Core 部署到IIS服务器
https://www.itsvse.com/thread-7838-1-1.html

ASP.NET Core使用Autofac实现AOP拦截
https://www.itsvse.com/thread-7566-1-1.html

ASP.NET Core ILogger日志使用教程
https://www.itsvse.com/thread-7565-1-1.html

ASP.NET Core使用Autofac两种方式实现IOC注入
https://www.itsvse.com/thread-7563-1-1.html

ASP.NET Core依赖注入使用自带的IOC容器
https://www.itsvse.com/thread-7562-1-1.html

【实战】ASP.NET Core之Entity Framework Core入门教程
https://www.itsvse.com/thread-7553-1-1.html

ASP.NET Core – Razor View Import用途介绍
https://www.itsvse.com/thread-7550-1-1.html

ASP.NET Core中自定义路由约束的实现
https://www.itsvse.com/thread-7549-1-1.html

ASP.NET Core命令行创建mvc项目
https://www.itsvse.com/thread-4868-1-1.html
ASP.NET Core 提供了多种 IDistributedCache 的实现 (Redis、SQL Server、In-memory) 。

关于内存缓存的教程:

ASP.NET Core MVC 内存缓存使用教程
https://www.itsvse.com/thread-8861-1-1.html


关于如何 Windows 安装 redis ,请参阅:



首先,Microsoft.Extensions.Caching.RedisMicrosoft.Extensions.Caching.StackExchangeRedis 都是对 Microsoft.Extensions.Caching.Distributed.IDistributedCache 接口的实现。

本文使用 Microsoft.Extensions.Caching.StackExchangeRedis 来实现缓存操作,因为 Microsoft.Extensions.Caching.Redis 最后一次更新是在 2018 年。


在 ASP.NET Core 项目,使用命令添加 nuget 包如下:

在 ConfigureServices 方法注册缓存服务,通过反编译代码,可以看到注册的是单例模式,那方法肯定也是线程安全的。如需更多设置,请配置 ConfigurationOptions 属性。

QQ截图20200922184249.jpg

通过读取配置文件,来设置 redis 配置,自定义了端口号和连接密码,appsettings.json 配置如下:



尝试在控制器中向 redis 添加缓存数据,控制器代码如下:

缓存配置:

  • AbsoluteExpiration 绝对过期时间,为null则条件无效
  • AbsoluteExpirationRelativeToNow 相对当前时间的绝对过期时间(使用TimeSpan),为null条件无效
  • SlidingExpiration 滑动过期时间
  • ExpirationTokens 提供用来自定义缓存过期
  • PostEvictionCallbacks 缓存失效回调
  • Priority 缓存项优先级(在缓存满载的时候绝对清除的顺序)
  • Size 代表缓存数据的大小,在内存缓存中一般为null



多次刷新控制器代码,通过 redis-cli 工具,查询缓存,如下图:

QQ截图20200922184505.jpg

调用 SetString 方法存值,使用的是 hash 类型存储,我也不知道啥原因。

(完)




上一篇:EF Core 系列(二)封装 OnModelCreating 利用反射创建索引等
下一篇:asp.net core 源码地址
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-9-22 20:02:31 | 显示全部楼层
学习学习。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-11-7 23:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表