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