ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_02


ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_客户端_03

In-Memory


使用IMemeryCache接口
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_asp.net core 2.2_04
注册缓存
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_05
HomeController注入进来
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_客户端_06

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_07
建一个类,用来存缓存的常量
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_客户端_08
判断缓存里面是否有数据,如果没有就读数据库存起来。
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_asp.net core 2.2_09
设置缓存事件,可调的 30秒。如果缓存的值被访问了就延长30秒
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_10
绝对过期,600秒
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_11
缓存被清空之后,调用回调方法,再填充回去
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_12

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_13

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_14

Cache Tag Helper


ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_asp.net core 2.2_15





ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_16

 

属性:

  • enabled:是否启用
  • expires-on:绝对过期时间
  • expires-after:
  • expires-sliding
  • vary-by-header:如果请求的 header 变了,缓存就需要刷新
  • vary-by-query
  • vary-by-route
  • vary-by-cookie
  • vary-by-user
  • vary-by
  • priority

过期事件设置为30秒
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_17

分布式缓存


ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_客户端_18
分布式缓存的特点
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_19

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_20

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_21
 

类型:

  • 分布式 Memory Cache(仅适合开发时使用)
  • 分布式 Sql Server Cache
  • 分布式 Redis Cache(推荐)


从docker中拉取redis的镜像
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_22

简历容器
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_23
正在运行
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_24

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_25
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_26
注册redis
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_客户端_27

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_28

转换成json字符串后还需要转换成byte类型
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_asp.net core 2.2_29
else的情况
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_30

容器内把端口暴露出来
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_31
运行页面走到断点这里了
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_32


 

Response 缓存

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_33

它是一种客户端的缓存,减轻服务端压力
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_34

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_35
再设置另外一个
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_asp.net core 2.2_36
在客户端缓存
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_缓存_37

另外一种用法
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_38

压缩

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_分布式缓存_39

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_40
默认使用Gzip的压缩
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 26. 缓存_redis_41
没有详细介绍,可以看官方的文档