天天看點

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

1 Redis分布式算法原理

1.1 傳統分布式算法

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

1.2 Consistent hashing一緻性算法原理

  • 環形 hash 空間:按照常用的 hash 算法來将對應的 key 哈希到一個具有 232 個桶的空間,即(0-232-1)的數字空間中,現在我們将這些數字頭尾相連,想象成一個閉合的環形
  • 把資料通過一定的 hash 算法映射到環上
  • 将機器通過一定的 hash 算法映射到環上
  • 節點按順時針轉動,遇到的第一個機器,就把資料放在該機器上
    Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

在移除 or 添加一個 cache 時,他能夠盡可能小的改變已經存在 key 映射關系

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

1.3 Hash傾斜性

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

為解決此類事件,引入了虛拟節點

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考
Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

2 Redis分布式環境配置

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

3 Redis分布式服務端及用戶端啟動

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

4封裝分布式Shared Redis API

4.1 SharedJedis源碼解析

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

封裝RedisSharedPool

測試代碼

內建測試

5 Redis分布式環境驗證

Redis分布式概覽1 Redis分布式算法原理2 Redis分布式環境配置3 Redis分布式服務端及用戶端啟動4封裝分布式Shared Redis API5 Redis分布式環境驗證6 叢集和分布式7 參考

6 叢集和分布式

  • 分布式:不同的業務子產品拆分到不同的機器上,解決高并發的問題。 工作形态 redis伺服器各工作方式不同一般稱為Redis分布式
  • 叢集:同一個業務部署在多台機器上,提高系統可用性 是實體形态,一般稱Tomcat叢集

    叢集可能運作着一個或多個分布式系統,也可能根本沒有運作分布式系統;分布式系統可能運作在一個叢集上,也可能運作在不屬于一個叢集的多台(2台也算多台)機器上。

你前台頁面有10個使用者,分别發送了1個請求,那麼如果不是叢集的話,那這10個請求需要并行在一台機器上處理,如果每個請求都是1秒鐘,那麼就會有一個人等待10秒鐘,有一個人等待9秒鐘,以此類推;那麼現在在叢集環境下,10個任務并分發到10台機器同時進行,那麼每個人的等待時間都還是1秒鐘;

當然,你說的浪費确實是,如果系統的并發不是很高,隻有一台或者兩台機器就能處理的話,那确實是有很大的浪費

7 參考

[Java企業級電商項目架構演進之路

Tomcat叢集與Redis分布式

](

https://coding.imooc.com/class/162.html)

繼續閱讀