凯旋门074网址,本篇分享有局地短处 请移步改良 

明日简短分享一下StackExchange.Redis客商端中布署大旨分离以及哨兵的配置。

澳门凯旋门游戏网址,关于哨兵就算有不打听的爱侣,能够看自己从前的一篇分享,当然主从复制小说也足以找到。

缘何要有那篇分享呢,是因为自身事先也会有局地疑问,相信学习Redis的爱人都有过一模一样的疑问。

在代码中,什么样分别操作主从数据库?,也正是说,如何只向主数据库写,而读取只向从服务器读。我日前付出的缓慢解决方案正是有关Set命令使用主服务器地址,关于Get的授命使用多少个从服务器地址。

下边小编从未分级给出set和get配置分化服务器地址的代码,给出多少个集群的写法吧。假设认为代码比较忽地,那依旧从第一篇,基础配置看一下啊。上面包车型客车布局便是个例子。

1     ConfigurationOptions option = new ConfigurationOptions();
2             option.EndPoints.Add("127.0.0.1", 6379);
3             option.EndPoints.Add("127.0.0.1", 6380);
4             option.EndPoints.Add("127.0.0.1", 6381);
5              _redis = ConnectionMultiplexer.Connect(option);
6             _db = _redis.GetDatabase();

 现在集群配置完了,那么主服务器挂了怎么办,今年即使安顿哨兵的工作了。当主服务器6379挂掉,自然会有从服务器升为主服务。你照样得以符合规律操作全体命令。

能够看我事先的一篇分享。接下来,能够看我事先的一篇分享。又有一个难题应时而生了。若是你确实将set设置仅为主服务器,get相关都安装为从服务器。当主服务器挂了,就算你布署的哨兵将某个从升为主,但是你的代码恐怕你代码中的配置文件,并不知道你主从已经切换了呀!

上边轻巧给出sentinel哨兵的连日以及订阅主从切换事件的代码。(发布订阅相关小说请看这里)

 private static readonly ConnectionMultiplexer _sentinel;
        static ISubscriber sub;
        static ISubscriber sentinelsub; 


ConfigurationOptions sentineloption = new ConfigurationOptions();
            sentineloption.TieBreaker = "";//sentinel模式一定要写
            sentineloption.EndPoints.Add("127.0.0.1", 5000);
            sentineloption.CommandMap = CommandMap.Sentinel;
            sentineloption.ServiceName = "mymaster";
            _sentinel = ConnectionMultiplexer.Connect(sentineloption);
            option.CommandMap = CommandMap.Sentinel;
            sentinelsub= _sentinel.GetSubscriber();

能够看我事先的一篇分享。瞩目这段sentinel配置代码
一样位于(追加上就行)咱们初叶化_能够看我事先的一篇分享。redis时的静态构造函数中。

能够看我事先的一篇分享。当中的sentinelsub是大家订阅新闻的目的。

订阅音讯的主意

  public  void SubSentinel()
        {
            sentinelsub.Subscribe("+switch-master", (channel, message) =>
            {

                Console.WriteLine((string)message);
            });
        }

咱俩订阅redis为大家提供的名字为 +switch-master 的channel。

本条时候,你能够在应用程序中的某处调用SubSentinel方法,其实正是注册一下你订阅了那么些事件。

你能够在订阅事件中打上断点,然后手动关闭主服务器,主从成功由大家布署的sentinel哨兵切换后,断点会跻身。

当今你看一下再次回到的message,个中蕴藏了哨兵的地址和新的master服务器的地址。

下一步正是基于你所获得的message,修改你的配置文件,或然直接修改全部set命令所接纳的
主服务器地址为 message中的主服务器地址。

就此你的读写操作都不会碰着震慑照旧挂掉。

 

相关文章