相关疑难解决方法(0)

如何告诉客户新Redis主站使用Sentinel的位置

好吧,我觉得我错过了一些重要的信息.

本地我有1个主服务器和1个从服务器redis服务器在不同的端口上运行 http://redis.io/topics/sentinel

我也有3个哨兵,他们似乎都相互了解并按预期工作.

现在我有一个很大的java代码指向我的主redis服务器127.0.0.1:6379.

如果我取下主人,哨兵会像预期的那样推动奴隶掌握,所以现在新的主人开启了

127.0.0.1:6380

我的问题是我的代码如何知道这一点和自动切换?

java redis sentinel

9
推荐指数
1
解决办法
6353
查看次数

StackExchange.Redis - 是否可以优先考虑端点?

我的设置:

\n\n
    \n
  • 4台Windows服务器
  • \n
  • 每台服务器上都有一个 Redis 节点和一个 Sentinel 进程
  • \n
  • 在每台服务器上部署相同的 Web 应用程序
  • \n
  • Web应用程序通过StackExchange.Redis驱动程序连接到redis服务器
  • \n
\n\n

一切都很好,但我想知道读取操作是否可以始终首先尝试使用本地可用的 Redis 节点。这将大大提高性能,因为所有读取操作的跃点都会减少。

\n\n

据我所知,可以通过命令标志属性将从站优先于主站 f\xc3\xbcr 特定命令。但有没有办法确定特定端点的优先级呢?

\n\n

附:

\n\n

使用的DLL:StackExchange.Redis.StrongName@1.2.0.0

\n\n

Redis服务器版本:3.2.100

\n\n

编辑:

\n\n

这是我的连接代码。我没有使用推荐的 Lazy getter 的原因是因为我想在其中一个节点发生故障时进行连接/重新连接,这非常适合我的解决方案。

\n\n
internal class RedisConnector\n{\n    private readonly ConfigurationOptions _currentConfiguration;\n    internal ConnectionMultiplexer Connection;\n\n    internal RedisCacheStore Store;\n\n    internal RedisConnector(ConfigurationOptions configuration)\n    {\n        _currentConfiguration = configuration;\n        Connect();\n    }\n\n    internal IDatabase Database\n        => Connection.GetDatabase(RedisCacheConfiguration.Instance.Connection.DatabaseId);\n\n    internal IServer Server => Connection.GetServer(Database.IdentifyEndpoint());\n\n    private void Connect()\n    {\n        Connection = ConnectionMultiplexer.Connect(_currentConfiguration);\n …
Run Code Online (Sandbox Code Playgroud)

c# redis stackexchange.redis

5
推荐指数
1
解决办法
3614
查看次数

标签 统计

redis ×2

c# ×1

java ×1

sentinel ×1

stackexchange.redis ×1