.NET Core 3 中的 Redis 缓存是否需要使用 Stack Exchange 包?

cas*_*ash 1 .net c# redis .net-core .net-core-3.0

在 .NET Core 2.2 中,在我的Startup.cs.

public void ConfigureServices(IServiceCollection services)
{
    services.AddDistributedRedisCache(...);             
}
Run Code Online (Sandbox Code Playgroud)

但是现在,在 .NET Core 3.0 中,AddDistributedRedisCache找不到该方法。在docs 中,“适用于”部分显示仅支持 .NET Core 2.2

按照Microsoft 的本教程,他们services.AddStackExchangeRedisCache在示例中使用。这是否意味着我需要为 Redis 安装 Stack Exchange NuGet 包?为什么微软原生的Redis客户端解决方案被移除了?

小智 10

花了一些时间挖掘他们的 git 存储库,但它已被删除。在当前存储库https://github.com/aspnet/Extensions 中没有发生删除,但在以前的存储库中,即现在已存档,https://github.com/aspnet/Caching

您可以在此线程中看到原始包的一些问题:https : //github.com/aspnet/Caching/issues/410#issuecomment-418912525

删除发生在这里:https : //github.com/aspnet/Caching/issues/423

我已经查看了从 2.1 -> 2.2 和 2.2 -> 3.0 的 aspnet 中的重大更改列表,但没有列出任何内容。我将在文档上创建一个问题以查看它是否包含在内。

在这一点上,我相信答案是使用 StackExchange 版本。无论如何,它显然比旧包有一些重大改进。

更新:支持的最新包Microsoft.Extensions.Caching.StackExchangeRedis只是简单地利用这个包最适合 .NET Core 3.0 及更高版本。

类似的东西

services.AddStackExchangeRedisCache(action =>
                {
                    action.InstanceName = "WhatYouWantToNameIt";
                    action.Configuration = "127.0.0.1:6379";
                });
Run Code Online (Sandbox Code Playgroud)

文档在这里