redis集群與redis分布式的區別是什么?可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
分布式是指將業務系統進行拆分,即分布式的每一個節點都是實現不同的功能。
集群是一組協同工作的服務實體,用以提供比單一服務實體更具擴展性與可用性的服務平臺。
簡單說,分布式是以縮短單個任務的執行時間來提升效率的,而集群則是通過提高單位時間內執行的任務數來提升效率。
Redis Cluster 集群模式通常具有高可用、可擴展性、分布式、容錯等特性。Redis 分布式方案一般有兩種:
客戶端分區方案
客戶端就已經決定數據會被存儲到哪個 redis 節點或者從哪個 redis 節點讀取數據。其主要思想是采用哈希算法將 Redis 數據的 key 進行散列,通過 hash 函數,特定的 key會映射到特定的 Redis 節點上。
客戶端分區方案的代表為 Redis Sharding,Redis Sharding 是 Redis Cluster 出來之前,業界普遍使用的 Redis多實例集群方法。Java 的 Redis 客戶端驅動庫 Jedis,支持 Redis Sharding 功能,即 ShardedJedis 以及結合緩存池的 ShardedJedisPool。
優點
不使用第三方中間件,分區邏輯可控,配置簡單,節點之間無關聯,容易線性擴展,靈活性強。
缺點
客戶端無法動態增刪服務節點,客戶端需要自行維護分發邏輯,客戶端之間無連接共享,會造成連接浪費。
代理分區方案
客戶端發送請求到一個代理組件,代理解析客戶端的數據,并將請求轉發至正確的節點,最后將結果回復給客戶端。
優點:簡化客戶端的分布式邏輯,客戶端透明接入,切換成本低,代理的轉發和存儲分離。 缺點:多了一層代理層,加重了架構部署復雜度和性能損耗。
代理分區主流實現的有方案有 Twemproxy 和 Codis。
Twemproxy
Twemproxy 也叫 nutcraker,是 twitter 開源的一個 redis 和 memcache 的中間代理服務器程序。Twemproxy 作為代理,可接受來自多個程序的訪問,按照路由規則,轉發給后臺的各個 Redis 服務器,再原路返回。Twemproxy 存在單點故障問題,需要結合 Lvs 和 Keepalived 做高可用方案。
優點:應用范圍廣,穩定性較高,中間代理層高可用。 缺點:無法平滑地水平擴容/縮容,無可視化管理界面,運維不友好,出現故障,不能自動轉移。
Codis
Codis 是一個分布式Redis 解決方案,對于上層應用來說,連接 Codis-Proxy 和直接連接原生的Redis-Server 沒有的區別。Codis 底層會處理請求的轉發,不停機的進行數據遷移等工作。Codis 采用了無狀態的代理層,對于客戶端來說,一切都是透明的。
優點
實現了上層 Proxy 和底層 Redis 的高可用,數據分片和自動平衡,提供命令行接口和 RESTful API,提供監控和管理界面,可以動態添加和刪除Redis 節點。
缺點
部署架構和配置復雜,不支持跨機房和多租戶,不支持鑒權管理。
看完上述內容,你們對redis集群與redis分布式的區別有進一步的了解嗎?如果還想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。