Redis集群~StackExchange.redis連接Twemproxy代理(li)服(fu)務器(qi)
本文是(shi)Redis集群系列的(de)(de)一(yi)(yi)篇(pian)文章(zhang),主要(yao)介紹使(shi)用StackExchange.Redis進(jin)行Twemproxy(文中簡(jian)稱TW)代(dai)理(li)服(fu)務的(de)(de)連(lian)接過程,事務上,對(dui)于(yu)(yu)TW來說(shuo),我們需要(yao)理(li)解一(yi)(yi)下它(ta)的(de)(de)物理(li)架構,它(ta)類似于(yu)(yu)Nugix,主要(yao)實現的(de)(de)是(shi)請求轉發,但它(ta)還有一(yi)(yi)個重要(yao)的(de)(de)功能,那就是(shi)自動(dong)分片(pian),這對(dui)于(yu)(yu)大(da)數據是(shi)很必要(yao)的(de)(de),你的(de)(de)服(fu)務器需要(yao)橫向(xiang)擴(kuo)展時,不需要(yao)告訴客戶(hu)端,這是(shi)一(yi)(yi)種很理(li)解化的(de)(de)設計模(mo)式,當然,也對(dui)于(yu)(yu)Redis來說(shuo),在配置TW之后(hou),是(shi)可以被全美支持的(de)(de)!
- 關于tw和Redis集群的設計圖
- 關于StackExchange.Redis驅動對TW的支持
- 關于Redis3.0以后的Cluster集群
- 關于Redis的主從模式的集群
- 關于Redis的哨兵Sentinel
關于tw和Redis集群的設計圖
關于StackExchange.Redis驅動對TW的支持
ConfigurationOptions options = new ConfigurationOptions(); options.Proxy = Proxy.Twemproxy; options.EndPoints.Add("127.0.0.1:6379"); options.EndPoints.Add("127.0.0.1:6380");
關于Redis3.0以后的Cluster集群
主要特點:
1):節點自動發現
2):slave->master 選舉,集群容(rong)錯
3):Hot resharding:在線分片
4):集群管理:cluster xxx
5):基于配(pei)置(nodes-port.conf)的集群(qun)管理
6):ASK 轉向(xiang)(xiang)/MOVED 轉向(xiang)(xiang)機制(zhi).
架構圖:
關于Redis的主從模式的集群
與早期版一樣(yang),可以通過修(xiu)改conf文(wen)件,為(wei)它添加slaveof屬性來(lai)實現各redis服(fu)務(wu)器之間(jian)的(de)主(zhu)從(cong)關系,主(zhu)從(cong)的(de)數據同步(bu)可以認為(wei)是(shi)實時(shi)的(de)。
設計圖:
關于Redis的哨兵Sentinel
Redis 的 Sentinel 系(xi)統用于管理多個 Redis 服務器(instance), 該系(xi)統執行以下三(san)個任(ren)務:
- 監控(Monitoring): Sentinel 會不斷地檢查你的主服務器和從服務器是否運作正常。
- 提醒(Notification): 當被監控的某個 Redis 服務器出現問題時, Sentinel 可以通過 API 向管理員或者其他應用程序發送通知。
- 自動故障遷移(Automatic failover): 當一個主服務器不能正常工作時, Sentinel 會開始一次自動故障遷移操作, 它會將失效主服務器的其中一個從服務器升級為新的主服務器, 并讓失效主服務器的其他從服務器改為復制新的主服務器; 當客戶端試圖連接失效的主服務器時, 集群也會向客戶端返回新主服務器的地址, 使得集群可以使用新主服務器代替失效服務器。
以(yi)上(shang)關于cluster,sentinel的相(xiang)關詳細的說明,我們會在后面的文章中(zhong)依次(ci)介紹(shao)到(dao),夠請(qing)關注!