1、安裝ruby相關依賴 1.1線上安裝 1.2離線安裝腳本 上傳離線壓縮包,解壓,運行install.sh腳本即可 2、配置運行6個redis服務 2.1先創建3個目錄 2.2創建配置文件(總共7個,1公6私) 將該文件發送到Windows桌面進行重命名,修改 先將redis.conf重命名為re ...
1、安裝ruby相關依賴
1.1線上安裝
yum install rubygems -y
gem install redis --version=3.0.6
1.2離線安裝腳本
上傳離線壓縮包,解壓,運行install.sh腳本即可
2、配置運行6個redis服務
2.1先創建3個目錄
2.2創建配置文件(總共7個,1公6私)
將該文件發送到Windows桌面進行重命名,修改
先將redis.conf重命名為redis-commons.conf(公共的),然後新建txt,命名為尾碼為.conf文件
redis-commons.conf中修改的地方,修改為如下即可
創建6個私有配置文件
redis-6379.conf(私有配置文件母版,需要將該文件再複製修改5個)
然後將7個文件上傳如下目錄
運行
註意:先關閉單節點的redis
接著啟動6個Redis服務
啟動成功
3、通過ruby腳本創建集群
3.1 複製ruby腳本至安裝路徑
3.2 創建集群
M:Master主服務
S:slave從服務
4、測試集群
檢測集群
redis-cli測試
至此,redis集群搭建完成。。。。。
註意:
集群中至少應該有奇數個節點,所以至少有三個節點,每個節點至少有一個備份節點,(主節點、備份節點由redis-cluster集群確定)。並且當存活的主節點數小於總節點數的一半時,整個集群就無法提供服務了。
redis集群搭建原理:
redis是單線程,但是一般的作為緩存使用的話,redis足夠了,因為它的讀寫速度太快了。
官方的一個簡單測試:
測試完成了50個併發執行100000個請求。
設置和獲取的值是一個256位元組字元串。
結果:讀的速度是110000次/s,寫的速度是81000次/s
redis cluster在設計的時候,就考慮到了去中心化,去中間件,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都保存各自的數據和整個集群的狀態。每個節點都和其他所有節點連接,而且這些連接保持活躍,這樣就保證了我們只需要連接集群中的任意一個節點,就可以獲取到其他節點的數據。
Redis 集群沒有並使用傳統的一致性哈希來分配數據,而是採用另外一種叫做哈希槽 (hash slot)
的方式來分配的。
redis cluster 預設分配了 16384 個slot,當我們set一個key 時,會用CRC16
演算法來取模得到所屬的slot
,然後將這個key 分到哈希槽區間的節點上,具體演算法就是:CRC16(key) % 16384。所以我們在測試的時候看到set 和 get 的時候,直接跳轉到了7000埠的節點。
Redis 集群會把數據存在一個 master 節點,然後在這個 master 和其對應的salve 之間進行數據同步。當讀取數據時,也根據一致性哈希演算法到對應的 master 節點獲取數據。只有當一個master 掛掉之後,才會啟動一個對應的 salve 節點,充當 master 。