湖南中小企业建站价格,绍兴seo推广公司,wordpress cdn系统,冷水滩网站建设今天简单分享一下StackExchange.Redis客户端中配置主从分离以及哨兵的配置。 关于哨兵如果有不了解的朋友#xff0c;可以看我之前的一篇分享#xff0c;当然主从复制文章也可以找到。http://www.cnblogs.com/tdws/tag/NoSql/ 为什么要有这篇分享呢#xff0c;是因为我之前也… 今天简单分享一下StackExchange.Redis客户端中配置主从分离以及哨兵的配置。 关于哨兵如果有不了解的朋友可以看我之前的一篇分享当然主从复制文章也可以找到。http://www.cnblogs.com/tdws/tag/NoSql/ 为什么要有这篇分享呢是因为我之前也有一些疑问相信学习Redis的朋友都有过相同的疑问。 在代码中如何分别操作主从数据库?也就是说如何只向主数据库写而读取只向从服务器读。我目前给出的解决方案就是有关Set命令使用主服务器地址关于Get的命令使用多个从服务器地址。 下面我没有分别给出set和get配置不同服务器地址的代码给出一个集群的写法吧。如果觉得代码比较突兀那还是从第一篇基础配置看一下吧。下面的配置就是个例子。 ConfigurationOptions option new ConfigurationOptions(); option.EndPoints.Add(127.0.0.1, 6379); option.EndPoints.Add(127.0.0.1, 6380); option.EndPoints.Add(127.0.0.1, 6381); _redis ConnectionMultiplexer.Connect(option); _db _redis.GetDatabase(); 现在集群配置完了那么主服务器挂了怎么办这个时候就是配置哨兵的事情了。当主服务器6379挂掉自然会有从服务器升为主服务。你依然可以正常操作所有命令。 接下来又有一个问题出现了。如果你真的将set设置仅为主服务器get相关都设置为从服务器。当主服务器挂了即使你配置的哨兵将某个从升为主但是你的代码或者你代码中的配置文件并不知道你主从已经切换了呀 下面简单给出sentinel哨兵的连接以及订阅主从切换事件的代码。发布订阅相关文章请看这里http://www.cnblogs.com/tdws/p/5827704.html 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中的主服务器地址。 从而你的读写操作都不会受到影响或者挂掉。 相关文章 Redis到底该如何利用一Redis到底该如何利用二Redis 3.0.0正式版发布高性能 K/V 服务用Docker构建分布式Redis集群推荐–个通用缓存接口抽象类库CacheManagerasp.net core 使用 Redis 和 Protobuf 进行 Session 缓存C#使用Redis集群缓存Azure Redis 缓存的 ASP.NET 会话状态提供程序搜狐视频Redis私有云cachecloud开源了在.Net项目中使用Redis作为缓存服务Redis集群~StackExchange.redis连接Twemproxy代理服务器Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件 原文地址http://www.cnblogs.com/tdws/p/5836122.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注