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

我正在查看StackExchange.Redis,并注意到它具有自动确定哪些配置的服务器是主服务器以及哪些是从服务器的function。

我没有设法发现StackExchange实际上对配置的Masters / Slaves 了什么。 它是否始终在Master上运行命令,并且仅使用已配置的Slaves进行故障转移? 或者答案是否比这更深入?

任何指针赞赏!

这里的关键是CommandFlags ,它是每个方法的参数。 默认情况下,大多数是PreferMaster ; 请注意,写入命令DemandMaster自动升级到DemandMaster 。 但是,如果要分散负载,可以选择通过PreferSlaveDemandSlave将一些读取命令(最好是昂贵的命令)推送到从属DemandSlave

它让你做的其他事情是切换主人(提升为主人) – 虽然这自然更具侵略性。