新聞中心
Redis集群方案應(yīng)該怎么做?
Redis在3.0之前,是只支持單實(shí)例模式的,雖然現(xiàn)在服務(wù)器的內(nèi)存也可以達(dá)到幾百G的規(guī)模,但是考慮到成本問題,大多數(shù)公司都會采用集群方案,把數(shù)據(jù)分片存到多個Redis實(shí)例中。

特克斯ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
這個方案比較簡單,也就是在客戶端中,通過定義好的路由規(guī)則,把不同的key存儲(路由)到不同的Redis實(shí)例中;比如hash(key)%N,根據(jù)結(jié)果把key路由到Redis1-RedisN中。
優(yōu)點(diǎn):不依賴第三方中間件,完全自己實(shí)現(xiàn),能夠自我掌控。
缺點(diǎn):增加或者減少Redis實(shí)例的時候,需要調(diào)整程序,而且在調(diào)整之后的一段時間,大部分緩存會失效(路由結(jié)果改變了);
客戶端把請求發(fā)送到Redis中間件,中間件根據(jù)路由規(guī)則發(fā)送請求到正確的Redis實(shí)例,然后中間件再把結(jié)果返回給客戶端。常用的幾個:
Twemproxy:由Twitter開源;客戶端可以像連接Redis實(shí)例一樣連接Twemproxy,不需要修改代碼邏輯;Twemproxy可以自動地Redis保持連接(可以看成數(shù)據(jù)庫連接池),而且可以自動刪除無效Redis實(shí)例;缺點(diǎn)也是有的,客戶端和Redis中增加了一層,性能方面多少會有一些損耗,更大的問題,是Twemproxy無法平滑地增加Redis實(shí)例。
公司redis集群有了蠻大的規(guī)模,權(quán)且來分享下redis集群!
首先,不可否認(rèn)的是,redis的單機(jī)性能相當(dāng)高,但是就算把內(nèi)存大量擴(kuò)大(垂直擴(kuò)展),也不可能滿足大業(yè)務(wù)需要的性能和可維護(hù)性!所以,集群是很好的一個選擇,通過集群可以實(shí)現(xiàn)水平擴(kuò)展,提升整體的性能!
集群方案1:使用客戶端分片的方式,增加多臺redis服務(wù)器之后,在業(yè)務(wù)端使用某種路由規(guī)則(hash算法等),將不同key對應(yīng)的數(shù)據(jù)放在不同的redis服務(wù)器中,實(shí)現(xiàn)內(nèi)容分發(fā)!
但是這樣的方式有很多缺點(diǎn),比如業(yè)務(wù)代碼和redis數(shù)據(jù)路由代碼嚴(yán)重耦合,可擴(kuò)展性也十分底下,需要增加redis實(shí)例的同時,修改原先的分發(fā)規(guī)則,而一旦出現(xiàn)問題,排查難度大(因?yàn)檫\(yùn)維和代碼端都要查)!
集群方案2:使用開源產(chǎn)品twemproxy作為redis代理!中間件twemcache負(fù)責(zé)接收業(yè)務(wù)端的請求,然后從不同的redis實(shí)例中收集數(shù)據(jù)傳送給業(yè)務(wù)方,起到一個中間代理的作用!業(yè)務(wù)端像連接一個redis實(shí)例一樣連接twemproxy,實(shí)現(xiàn)了業(yè)務(wù)代碼和redis之間的解耦合!同時,對于失效的redis會被自動踢出,防止數(shù)據(jù)的丟失,不過twemproxy作為一個中間件,肯定會對需要實(shí)時性強(qiáng)的系統(tǒng)造成性能損失,動態(tài)無痕跡的增加redis實(shí)例也是很困難的?。?br/>
集群方案3:使用codis集群,類似于twemproxy,客戶端也不需要去連接redis實(shí)例,而使用codis作為中間件,讓codis底層自己去獲取數(shù)據(jù),增加的codis dashboard可以對codis proxy和codis server進(jìn)行統(tǒng)一管理,對實(shí)例節(jié)點(diǎn)的改變可以有效應(yīng)對!
集群方案4:redis自主集群,使用純redis實(shí)現(xiàn)集群,完全的去中心化!redis集群把所有的key放在16384個slot中,各個redis可以通過重定向引導(dǎo)客戶端訪問數(shù)據(jù)所在的集群點(diǎn),比如client訪問redis2,redis2發(fā)現(xiàn)數(shù)據(jù)的key在redis1中,就引導(dǎo)客戶端重定向去redis1中取數(shù)據(jù),這樣不需要別的中間件就能很好的實(shí)現(xiàn)數(shù)據(jù)獲取,而且這樣的純redis方式,部署起來也是十分方便的!
集群方案5:直接買阿里,騰訊的集群吧,想要啥樣的給你啥樣的。。
我們公司現(xiàn)在使用的是基于codis的redis集群,管理相對來說比較簡單,算是比較不錯的集監(jiān)控,代理于一身的組件!
redis集群具體的使用過程中,如果有問題,可以私信我進(jìn)行交流!更多的技術(shù)分享,敬請關(guān)注。。。
到此,以上就是小編對于redis集群lua的問題就介紹到這了,希望這1點(diǎn)解答對大家有用。
新聞標(biāo)題:redis集群路由怎么配置
當(dāng)前URL:http://fisionsoft.com.cn/article/cccjhpg.html


咨詢
建站咨詢
