2016-02-01 134 views
0

最近我开始学习Redis,并且已经能够完成从32位Windows学习方面的所有工作。我是.net开发人员,并使用Redis在Web API设置中使用ServiceStack client进行缓存。我已经能够成功运行由4个主服务器和4个从服务器组成的Redis集群,并且想知道如何与ServiceStack客户端一起完成这项工作。Redis集群就绪客户端

我主要担心的是,如果我连接到客户端的主服务器出现故障,那么客户端如何自动连接到接管的其他可用从服务器,因为该从服务器的端口将会不同。因此,故障转移在Redis级别工作,但客户端如何处理它?

我使用Redis命令行界面重新创建了上述场景,但是当我将主控制器关闭时,界面刚停止响应,因为任何事情都只是在黑洞中进行。所以,根据我的经验,cli不会自动处理作为客户端的故障转移。

我已经开始学习StackExchange's client给Redis,但仍然有同样的问题。

我使用微软给出的学习目的在Github上提供的Redis发行版(对不起,无法提供链接,因为我是新手,没有足够的信誉点)。

回答

0

Redis Sentinel是额外的Redis进程,用于监视Redis主/从的运行状况,并在检测到主实例关闭时负责执行自动故障切换。 Redis Config project提供了一种快速设置流行的Redis Sentinel配置的方法。

ServiceStack.Redis Client supports Redis Sentinel并实现了Recommended client Strategy,它使故障在故障转移后自动恢复,方法是让其中一个Sentinels连接到下一个可用地址,然后使用其中一个可用实例恢复操作。

您可以了解更多有关Redis Sentinel in the official Documentation的信息。

+0

感谢mythz的回答。可能是因为我目前的理解是绿色的,但是因为我打算使用Redis Cluster,所以我相信我不应该使用Redis Sentinel安装程序。我确实希望利用我们在Redis Cluster中开箱即用的自动分片和复制功能。如果我的理解错了,请原谅我。我使用链接来读取群集与哨兵:https://fnordig.de/2015/06/01/redis-sentinel-and-redis-cluster/ – Tux

+0

@Tux如果你需要分片,你会想使用Redis集群,Redis Sentinel提供监视,自动故障转移并使用已经内置到Redis中的复制。 ServiceStack不支持集群,因此您需要使用StackExchange.Redis。 – mythz

+0

@Tux还指出,ServiceStack.Redis是一个商业支持的产品,可免费使用(参见[free-quotas](https://servicestack.net/download#free-quotas))。 – thepirat000