Tag: stackexchange.redis

StackExchange.Redis对配置的Masters / Slaves做了什么?

我正在查看StackExchange.Redis,并注意到它具有自动确定哪些配置的服务器是主服务器以及哪些是从服务器的function。 我没有设法发现StackExchange实际上对配置的Masters / Slaves 做了什么。 它是否始终在Master上运行命令,并且仅使用已配置的Slaves进行故障转移? 或者答案是否比这更深入? 任何指针赞赏!

Azure Redis缓存 – ConnectionMultiplexer对象池

我们在我们的应用程序中使用C1 Azure Redis Cache。 最近我们在GET操作上遇到了很多时间。 根据这篇文章 ,可能的解决方案之一是实现ConnectionMultiplexer对象池。 另一种可能的解决方案是在客户端中使用ConnectionMultiplexer对象池,并在发送新请求时选择“负载最小”的ConnectionMultiplexer。 这应该可以防止单个超时导致其他请求也超时。 如何使用C#实现一个ConnectionMultiplexer对象池? 编辑: 我最近问的相关问题。

VS.NET 2017强制在ASP.NET 2.0 Core应用程序中使用StackExchange.Redis 1.2.4.0

我正在使用Visual Studio 2017.我刚刚创建了一个新的ASP.NET Core 2.0项目。 我试图使用NuGet来引入最新的StackExchange.Redis 1.2.6(截至9/3/2017)。 但是,一旦我这样做,Visual Studio就会抱怨我的一个RedisResult变量中存在冲突的引用。 它说 错误CS0433类型’RedisResult’存在于’StackExchange.Redis.StrongName,Version = 1.2.4.0,Culture = neutral,PublicKeyToken = c219ff1ca8c2ce46’和’StackExchange.Redis,Version = 1.2.6.0,Culture = neutral,PublicKeyToken = null ‘服务器C:\ git \ Splash \ Server \ BackPlaneConnection \ Channel.cs 19有效 然后,我发现我不需要手动添加任何NuGet包,以便在我的ASP.NET Core 2.0应用程序中使用StackExchange.Redis。 实际上,如果我手动添加对不同版本的StackExchange.Redis的引用,则会导致我在上面显示的解决冲突。 检查构建输出。 DLL实际上来自C:\ Program Files \ dotnet \ sdk \ NuGetFallbackFolder \ stackexchange.redis.strongname 我尝试删除stackexchange.redis.strongname但它仍然以某种方式自动将其下载到我的个人nuget文件夹。 几乎感觉ASP.NET Core 2.0内部需要StackExchange.Redis 1.2.4.0,但这对我来说真的没有意义。 […]

使用StackExchange.Redis的Redis键空间通知

我环顾四周,我无法找到如何使用StackExchange.Redis库在Redis上执行键空间通知订阅。 检查可用的测试我发现使用频道的pubsub,但这更像是服务总线/排队,而不是订阅特定的Redis键事件。 是否可以使用StackExchange.Redis利用此Redisfunction?

使用C#中的StackExchange / Sentinel进行Redis故障转移

我们目前正在使用Redis 2.8.4和StackExchange.Redis(并且喜欢它),但目前还没有任何针对硬件故障等的保护。 我正在努力让解决方案正常工作,我们有主/从和监控但不能完全到达那里,我在搜索后找不到任何真正的指针。 所以目前我们已经做到了这一点: 我们在每个节点上有3个redis服务器和sentinel(由Linux人员设置):devredis01:6383(master)devredis02:6383(slave)devredis03:6383(slave)devredis01:26379(sentinel)devredis02:26379(sentinel)devredis03: 26379(哨兵) 我能够将StackExchange客户端连接到redis服务器并进行写入/读取,并使用Redis Desktop Managervalidation是否正在跨所有redis实例复制数据。 我也可以使用不同的ConnectionMultiplexer连接到sentinel服务,查询配置,请求主redis节点,请求奴隶等。 我们还可以终止主redis节点并validation其中一个从属是否被提升为主节点,并且复制到另一个从节点继续工作。 我们可以观察redis连接尝试重新连接到主设备,并且如果我重新创建ConnectionMultiplexer,我可以再次写入/读取新升级的主设备并从从设备读取。 到现在为止还挺好! 我缺少的是你如何在生产系统中将它们整合在一起? 我应该从sentinel获取redis端点并使用2个ConnectionMultiplexers吗? 我究竟需要做些什么来检测节点是否已关闭? StackExchange可以自动为我执行此操作还是通过事件,以便重新连接我的redis ConnectionMultiplexer? 我应该处理ConnectionFailed事件然后重新连接,以便ConnectionMuliplexer找出新主设备是什么? 据推测,当我重新连接时,任何写入的尝试都将丢失? 我希望我不会错过一些非常明显的东西,我只是在努力将它们放在一起。 提前致谢!