使 ServiceStack RedisSentinel 使用 RedisManagerPool 而不是 PooledRedisClientManager
Making ServiceStack RedisSentinel use a RedisManagerPool instead of a PooledRedisClientManager
使用 ServiceStack 版本 4.0.40。
我正在尝试让 RedisSentinel 使用 RedisManagerPool 而不是
PooledRedisClientManager 因此它将允许超过客户端池大小的客户端。
我在文档中看到这个设置...
sentinel.RedisManagerFactory = (master,slaves) => new RedisManagerPool(master);
我不确定如何使用它。我是否传递主控主机名?如果我因为之前的故障转移而不知道哪个是 master 怎么办?我无法 sentinel.start() 找出哪个是 master,因为它将以 PooledRedisClientManager 开始,这不是我想要的。
或者,我是否传入哨兵主机? RedisManagerPool 需要一个主机列表,我可以传入哨兵主机,但我不能将它设置为 sentinel.RedisManagerFactory,因为 RedisManagerFactory 不能转换为 RedisManagerPool。
我想我在这里遗漏了一些简单的东西。任何帮助表示赞赏。
更新
根据下面 mythz 的评论,这在 ServiceStack 4.0.40 版中不可用。但是你可以使用;
sential.RedisManagerFactory.FactoryFn = (master, slaves) => new RedisManagerPool(master);
谢谢
这实际上是您需要用来更改 RedisSentinel 以使用 RedisManagerPool 的配置:
sentinel.RedisManagerFactory = (master,slaves) =>
new RedisManagerPool(master);
您不需要传递任何其他内容,master 主机参数使用 lambda 参数。
使用 ServiceStack 版本 4.0.40。
我正在尝试让 RedisSentinel 使用 RedisManagerPool 而不是 PooledRedisClientManager 因此它将允许超过客户端池大小的客户端。
我在文档中看到这个设置...
sentinel.RedisManagerFactory = (master,slaves) => new RedisManagerPool(master);
我不确定如何使用它。我是否传递主控主机名?如果我因为之前的故障转移而不知道哪个是 master 怎么办?我无法 sentinel.start() 找出哪个是 master,因为它将以 PooledRedisClientManager 开始,这不是我想要的。
或者,我是否传入哨兵主机? RedisManagerPool 需要一个主机列表,我可以传入哨兵主机,但我不能将它设置为 sentinel.RedisManagerFactory,因为 RedisManagerFactory 不能转换为 RedisManagerPool。
我想我在这里遗漏了一些简单的东西。任何帮助表示赞赏。
更新
根据下面 mythz 的评论,这在 ServiceStack 4.0.40 版中不可用。但是你可以使用;
sential.RedisManagerFactory.FactoryFn = (master, slaves) => new RedisManagerPool(master);
谢谢
这实际上是您需要用来更改 RedisSentinel 以使用 RedisManagerPool 的配置:
sentinel.RedisManagerFactory = (master,slaves) =>
new RedisManagerPool(master);
您不需要传递任何其他内容,master 主机参数使用 lambda 参数。