<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么 Redis 集群要使用反向代理? 看這篇就明白了!

          共 1762字,需瀏覽 4分鐘

           ·

          2022-03-02 22:27

          點擊關(guān)注公眾號,Java干貨及時送達(dá)

          作者:等不到的口琴
          鏈接:www.cnblogs.com/Courage129/p/14351545.html

          如果沒有反向代理,一臺Redis可能需要跟很多個客戶端連接:

          看著是不是很慌?看沒關(guān)系,主要是連接需要消耗線程資源,沒有代理的話,Redis要將很大一部分的資源用在與客戶端建立連接上,redis的高可用和可擴(kuò)展無論是自帶的Redis Sentinel還是Redis Cluster都要求客戶端進(jìn)行額外的支持,而目前基本上沒有合適的客戶端能夠做這些事情,客戶端來做這些事情也并不合適,它會讓維護(hù)變得特別困難。

          因此在客戶端和redis服務(wù)端之間加一層代理成了一種理想的方案,代理屏蔽后端Redis實現(xiàn)細(xì)節(jié)向客戶端提供redis服務(wù),可以完美的解決Redis的高可用和擴(kuò)展性問題,同時代理的引入也使得Redis維護(hù)變得更加簡單。

          于是乎,有了代理:

          如何使用代理?

          很簡單,將請求連接到調(diào)度代理器上,由Proxy負(fù)責(zé)將請求轉(zhuǎn)發(fā)到后面的Redis服務(wù)實例,圖示:

          又有了新的問題,Proxy掛了可咋整?

          想成為架構(gòu)師,這份架構(gòu)師圖譜建議看看,少走彎路。

          所以Proxy又需要做集群,甚至前面可以加一層負(fù)載均衡,負(fù)載均衡嘛,單機(jī)也存在單點故障等問題,一個Director肯定不行,搞不好又掛了,所以整一個主備,備機(jī)通過KeepAlived來檢測主LVS健康狀況,出了問題頂上去。

          Redis代理插件

          Redis代理插件有很多,這兒簡單介紹幾款

          predixy高性能全特征redis代理,支持Redis Sentinel和Redis Cluster
          twemproxy快速、輕量級memcached和redis代理
          codisredis集群代理解決方案
          redis-cerberusRedis Cluster代理

          代理詳細(xì)功能對比

          特性predixytwemproxycodisredis-cerberus
          高可用Redis Sentinel或Redis Cluster一致性哈希Redis SentinelRedis Cluster
          可擴(kuò)展Key哈希分布或Redis ClusterKey哈希分布Key哈希分布Redis Cluster
          開發(fā)語言C++CGOC++
          多線程
          事務(wù)Redis Sentinel模式單Redis組下支持不支持不支持不支持
          BLPOP/BRPOP/BLPOPRPUSH支持不支持不支持支持
          Pub/Sub支持不支持不支持支持
          Script支持load不支持不支持不支持
          Scan支持不支持不支持不支持
          Select DB支持不支持支持Redis Cluster只有一個DB
          Auth支持定義多個密碼,給予不同讀寫及管理權(quán)限和Key訪問空間不支持同redis不支持
          讀從節(jié)點支持,可定義豐富規(guī)則讀指定的從節(jié)點不支持支持,簡單規(guī)則支持,簡單規(guī)則
          多機(jī)房支持支持,可定義豐富規(guī)則調(diào)度流量不支持有限支持有限支持
          統(tǒng)計信息豐富豐富豐富簡單

          簡單來說,predixy既支持Redis Sentinel也支持Redis Cluster

          • 后端為Redis Sentinel監(jiān)控的一組Redis,功能完全等同于原始Redis
          • 后端為Redis Sentinel監(jiān)控的多組Redis,則有部分功能受限
          • 后端為Redis Cluster,功能完全等同于Redis Cluster







          開工大吉!再發(fā) 10,000 個紅包封面
          2021 年發(fā)生的 10 件技術(shù)大事??!
          23 種設(shè)計模式實戰(zhàn)(很全)
          換掉 Log4j2!tinylog 橫空出世
          再見單身狗!Java 創(chuàng)建對象的 6 種方式
          勁爆!Java 協(xié)程要來了
          重磅官宣:Redis 對象映射框架來了!!
          推薦一款代碼神器,代碼量至少省一半!
          程序員精通各種技術(shù)體系,45歲求職難!
          Spring Boot 3.0 M1 發(fā)布,正式棄用 Java 8
          Spring Boot 學(xué)習(xí)筆記,這個太全了!



          關(guān)注Java技術(shù)棧看更多干貨



          獲取 Spring Boot 實戰(zhàn)筆記!
          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲se性图 | 日韩黄色电影网址 | 国产香蕉视频在线播放 | 3344a看片 | 啊啊啊男女拍拍视频 |