Redis 作为 ASP.NET Core 3.1 MVC 中的 OutputCacheProvider

Redis as OutputCacheProvider in ASP.NET Core 3.1 MVC

我有一个 ASP.NET 基于网络表单的网站,我正在将其转换为 ASP.NET Core 3.1 MVC。

我曾使用 Redis 作为我的 OutputCache 提供程序来缓存网站页面。我的 web.config 在较早的网站上有相同的设置。

<caching xdt:Transform="Replace">
  <outputCache defaultProvider="rdstest">
    <providers>
      <add name="rdstest" type="Microsoft.Web.Redis.RedisOutputCacheProvider" host="rdstest............."
           accessKey="xxxxxx=" databaseId ="1" port="xxxx" ssl="true" applicationName="xxxx" />
    </providers>
  </outputCache>
</caching>

我在网上查看过将 redis 用于相同目的的最佳方法是什么,但找不到任何简单的实现。

大部分文章都在使用redis作为数据缓存,很少有文章展示如何简单地缓存输出页面。

如有任何帮助,我们将不胜感激。

谢谢。

目前 ASP.Net Core 中没有内置输出缓存。你得到的关闭是 Response Caching Middleware 但它只能与内部内存缓存一起使用,你不能换成其他东西。

ASP.NET 核心团队已经认识到这一点,并且 .NET 7-Candidate 里程碑中有一个 issue tracking this,所以如果我们得到一个正式的,那最早会在一年后.

因此,如果您现在想要使用 Redis 支持进行输出缓存,您将必须构建自己的中间件来缓存响应(并提供缓存的响应)。