日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件

發(fā)布時(shí)間:2023/12/4 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對于redis-sentinel我在之前的文章中Redis集群~StackExchange.redis連接Twemproxy代理服務(wù)器?已經(jīng)說過,它是一個(gè)仲裁者,當(dāng)主master掛了后,它將在所有slave服務(wù)器中進(jìn)行選舉,選舉的原則當(dāng)然可以看它的官方文章,這與我們使用者沒有什么關(guān)系,而對于sentinel來說,它在進(jìn)行主從切換時(shí),會觸發(fā)相關(guān)事件,這是和我們開發(fā)人員有關(guān)系的,如當(dāng)+switch-master事件被觸發(fā)時(shí),說明當(dāng)前Sentinal已經(jīng)完成了一次主從的切換,并所有服務(wù)已經(jīng)正常運(yùn)轉(zhuǎn)了。

下面是我這幾天作的測試,對于Twemproxy代理和Sentinal哨兵都已經(jīng)成功使用stackExchange.redis進(jìn)行了連接,并正常訪問了,當(dāng)然Sentinel只公開了幾個(gè)redis命令,這個(gè)大家要清夢,不明白的可以看我的這篇文章《Redis集群~windows下搭建Sentinel環(huán)境及它對主從模式的實(shí)際意義》。

連接普通的redis服務(wù)器

ConnectionMultiplexer conn = ConnectionMultiplexer.Connect("127.0.0.1:6379"); ConfigurationOptions option = new ConfigurationOptions();option.EndPoints.Add("127.0.0.1", 6379);ConnectionMultiplexer conn = ConnectionMultiplexer.Connect(option);

連接TW代理服務(wù)器

ConfigurationOptions twOption = new ConfigurationOptions();twOption.EndPoints.Add("127.0.0.1", 22122);twOption.EndPoints.Add("127.0.0.1", 22123);twOption.Proxy = Proxy.Twemproxy;//代理的類型ConnectionMultiplexer conn = ConnectionMultiplexer.Connect(twOption);

連接Sentinal仲裁哨兵服務(wù)器

//連接sentinel服務(wù)器ConfigurationOptions sentinelConfig = new ConfigurationOptions();sentinelConfig.ServiceName = "master1";sentinelConfig.EndPoints.Add("192.168.2.3", 26379);sentinelConfig.EndPoints.Add("192.168.2.3", 26380);sentinelConfig.TieBreaker = "";//這行在sentinel模式必須加上sentinelConfig.CommandMap = CommandMap.Sentinel; ? ? ? ? ? ?// Need Version 3.0 for the INFO command?sentinelConfig.DefaultVersion = new Version(3, 0);ConnectionMultiplexer conn = ConnectionMultiplexer.Connect(sentinelConfig);

有了上面的代碼后,我們可以成功的連接一個(gè)sentinel服務(wù)器,對這個(gè)連接的實(shí)際意義在于:當(dāng)一個(gè)主從進(jìn)行切換后,如果它外層有Twemproxy代理,我們可以在這個(gè)時(shí)機(jī)(+switch-master事件)通知你的Twemproxy代理服務(wù)器,并更新它的配置文件里的master服務(wù)器的地址,然后從起你的Twemproxy服務(wù),這樣你的主從切換才算真正完成。

對于Twemproxy-sentinal-master/slave主從切換實(shí)現(xiàn)圖

我們可以使用.netcore開發(fā)一個(gè)跨平臺的程序,將它放在linux的tw代理服務(wù)器上,使用dotnet run去運(yùn)行它,然后當(dāng)收到由sentinel發(fā)來的+switch-master事件時(shí),將更新tw配置文件并從起它的服務(wù)。

希望大家對技術(shù)多一點(diǎn)深度的研究,找不到答案就看看它的源代碼,可能會有意外的收獲!

相關(guān)文章:

  • Redis到底該如何利用(一)?

  • Redis到底該如何利用(二)?

  • Redis 3.0.0正式版發(fā)布,高性能 K/V 服務(wù)

  • 用Docker構(gòu)建分布式Redis集群

  • 推薦–個(gè)通用緩存接口抽象類庫:CacheManager

  • asp.net core 使用 Redis 和 Protobuf 進(jìn)行 Session 緩存

  • C#使用Redis集群緩存

  • Azure Redis 緩存的 ASP.NET 會話狀態(tài)提供程序

  • 搜狐視頻Redis私有云cachecloud開源了

  • 在.Net項(xiàng)目中使用Redis作為緩存服務(wù)

  • Redis集群~StackExchange.redis連接Twemproxy代理服務(wù)器


原文地址:http://www.cnblogs.com/lori/p/5829250.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注

贊賞

人贊賞

總結(jié)

以上是生活随笔為你收集整理的Redis集群~StackExchange.redis连接Sentinel服务器并订阅相关事件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。