使用来自.net核心的ServiceStack Redis并连接到Sentinel设置

时间:2016-10-27 09:55:40

标签: c# redis asp.net-core servicestack.redis

我创建了一个.net核心控制台应用程序,并包含了ServiceStack.Redis.Core v1.0.23 nuget包。我还在本地运行redis sentinel设置。当我尝试使用sentinel连接方法连接到redis时,应用程序挂起在sentinel.start()上。没有返回错误。

如果我使用标准的Windows C#项目使用Windows控制台应用程序创建相同的应用程序并包含ServiceStack.Redis v4.5.4 nuget包,则相同的连接代码可以正常工作。

我还设法使用单个redis实例从.net核心应用程序连接,但没有使用sentinel。

是否有其他人经历过这种情况或知道如何在.net核心应用程序中使用它?

用于尝试连接的代码:

var sentinelHosts = new[] { "127.0.0.1:26380", "127.0.0.1:26381", "127.0.0.1:26382" };
var sentinel = new RedisSentinel(sentinelHosts, masterName: "mymaster");

var clientManager = sentinel.Start();

1 个答案:

答案 0 :(得分:1)

这是一个错误,应该使用this commit修复。 sentinel.Start()调用RedisPubSubServer来阻止.NET Core上的当前线程,这就是控件不返回并挂起的原因。此更改将在具有ServiceStack.Redis.Core v1.0.25软件包的nuget上提供。