redis? 3.x版本后開始支持
作用:
1.提升數據讀寫速度
2..提升可用性
分片集群就是將業務服務器產生的數據儲存在不同的機器上。
redis分片集群的架構
如上圖所示,會將數據分散存儲到不同的服務器上,相比于之前來說,redis要處理所有緩存數據的讀寫,而現在數據是分散到不同的服務器上,顯然相比于之前來說讀寫速度會有很大的提升。
redis的分片集群還有一個特性就是會隨機兩兩配對構建成一對主從復制關系。
在分片集群中每份數據都是獨立的關系,并不是將一份完整的數據拆分成多份,而這每份數據之間可能有關系,可能沒關系。
redis分片集群的讀寫原理
在redis分片集群中存儲的數據都是以鍵值對的形式存儲到redis分片集群中。
緩存的目的是為了加速
數據緩存最重要的是當尋找數據的時候,數據的命中率。【即能不能在最少的時間內找到需要的數據。】
在計算機中對數據進行哈希運算,不管是什么數據都可以被哈希算法運算為一個數字,而這個數字的大小總是固定在0-2的32次方之間。
在redis分片集群中一共會產生16384哈希槽,【而這16384個哈希槽會被平均分給每個redis節點。每個redis負責不同槽位的讀寫。】
如上圖所示,在redis分片集群中對于數據的存儲都是對這個key進行哈希運算,隨后拿運算結果,除以16384取余,拿到余數,判斷這個余數是由哪個redis節點負責的,將這個數據儲存到哪個redis節點上。
哈希運算對象 | 僅鍵(Key),與值(Value)無關。 |
redis分片集群的部署
1.分別在兩臺服務器上安裝redis
2.創建實例目錄,拷貝配置文件
3.編輯實例的配置文件
如上圖所示,這是啟動redis軟件的集群功能,將來可以使用這個redis實例去部署集群。
如上圖所示,這是集群的配置文件。將redis實例添加到集群中的時候還需要有一個相應的配置文件。
如上圖所示,這是集群之間相互通信的超時時間單位是毫秒。
如上圖所示,我們將7001的配置文件拷貝給7002的實例一份,隨后將這個拷貝文件中的7001全部替換成7002.
4.啟動實例
如上圖所示,多啟動的端口就是多個redis實例之間進行相互通信的。
5.創建分片集群
如上圖所示,先去創建對應的目錄,隨后復制對應的配置文件,隨后用for循環和sed工具去修改配置文件中的內容,
如上圖所示,此時這個另外一臺機器上的三個redis實例已經啟動成功,
如上圖所示,這里的1表示每個主服務器配置1個從服務器,當然每個主服務器也可以配置多個從服務器。