<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集群要使用反向代理?

          共 5293字,需瀏覽 11分鐘

           ·

          2022-06-26 04:33

          關(guān)注Java學(xué)習(xí)之道一起成長,一起學(xué)習(xí)~

          作者: 等不到的口琴
          來源: cnblogs.com/Courage129/p/14351545.html

          Part1為什么要使用反向代理?

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

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

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

          于是乎,有了代理:

          Part2如何使用代理?

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

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

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

          Part3Redis代理插件

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


          高性能全特征redis代理,支持Redis Sentinel和Redis Cluster

          快速、輕量級memcached和redis代理

          redis集群代理解決方案

          Redis Cluster代理

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

          特性 predixy twemproxy codis redis-cerberus
          高可用 Redis Sentinel或Redis Cluster 一致性哈希 Redis Sentinel Redis Cluster
          可擴(kuò)展 Key哈希分布或Redis Cluster Key哈希分布 Key哈希分布 Redis Cluster
          開發(fā)語言 C++ C GO C++
          多線程
          事務(wù) Redis Sentinel模式單Redis組下支持 不支持 不支持 不支持
          BLPOP/BRPOP/BLPOPRPUSH 支持 不支持 不支持 支持
          Pub/Sub 支持 不支持 不支持 支持
          Script 支持load 不支持 不支持 不支持
          Scan 支持 不支持 不支持 不支持
          Select DB 支持 不支持 支持 Redis Cluster只有一個DB
          Auth 支持定義多個密碼,給予不同讀寫及管理權(quán)限和Key訪問空間 不支持 同redis 不支持
          讀從節(jié)點(diǎn) 支持,可定義豐富規(guī)則讀指定的從節(jié)點(diǎn) 不支持 支持,簡單規(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
          -- END --

           | 更多精彩文章 -



          ← 左右滑動與Java學(xué)習(xí)之道互動交流 →

             
                    
          加我微信,交個朋友
                   
          長按/掃碼添加↑↑↑
                          

          瀏覽 41
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(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>
                  亚洲AV无码成人精品毛片 | 五月婷婷综合一区 | 日韩av电影在线免费观看 | 麻豆国产97在线 | 欧美 | 综合大香蕉在钱 |