redis集群的搭建
一: redis集群中:存在通過投票刪除錯誤的節點(有半數以上投票通過,可確定被投票的節點已經錯誤fail)

架構細節:
(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬.
(2)節點的fail是通過集群中超過半數的節點檢測失效時才生效.
(3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集群所有節點,連接集群中任何一個可用節點即可
(4)redis-cluster把所有的物理節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value
Redis 集群中內置了 16384 個哈希槽,當需要在 Redis 集群中放置一個 key-value 時,redis 先對 key 使用 crc16 算法算出一個結果,然后把結果對 16384 求余數,這樣每個 key 都會對應一個編號在 0-16383 之間的哈希槽,redis 會根據節點數量大致均等的將哈希槽映射到不同的節點
二:redis集群的搭建
完全分布式:redis集群的節點個數是奇數個,最少有三個節點,為了保證集群的高可用性,對每台redis節點需要進行備份,因此redis集群需要6台服務器。
偽分布式:可以再一台服務器上面同時運行6個redis實例,模擬完全分布式集群。需要修改每個redis實例中的端口號,同時設置cluster-enabled的值為yes
三:偽分布式redis集群的搭建過成
1.由於使用的是ruby腳本搭建的集群,啟動需要ruby,因此需要ruby環境的支持。
下載ruby包
yum install ruby
yum install rubygems
2.安裝腳本運行時使用的包
將 redis-3.0.0.gem文件導入虛擬機中
使用命令gem install redis-3.0.0.gem進行安裝

3.進入redis的源文件目錄(解壓后的目錄)下面的src目錄,查找*.rb
將該文件拷貝到集群下面的文件中
cp /redis-3.0.0/src/redis-trib.rb /use/local/redis_cluster/
redis_cluster目錄需要自己創建,作為搭建集群的主目錄

4.在創建的redis_cluster目錄下,拷貝6份redis的啟動文件(bin目錄)
cp /usr/lcoal/redis/bin /redis_cluster/redis01 -r

5.修改每一個redis下的redis.conf配置文件,設置端口號為7001-7006,同時將cluster-enabled的設置為yes,表示啟用集群服務

6.創建啟動腳本文件,將啟動redis的命令放置到該腳本文件中

7.為啟動腳本 start-redis_cluster.sh設置可執行權限
chmod u+x start-redis_cluster.sh 表示為主用戶啟用可執行的權限,執行成功后,腳本文件會變成綠色
8.在redis-cluster下運行啟動的腳本文件
./start-redis_cluster.sh 該命令執行后會在后台啟動6個redis實例
9.通過ps aux|grep redis 可以查看各個redis實例啟動信息(包括端口號,進程號)
10.使用ruby腳本搭建redis集群
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006

11.查看是否成功啟動(如果出現這種錯誤,將redis.conf中指定位置的文件刪除重新啟動即可)

12.成功啟動的標志

13.創建批處理文件用來關閉集群中的redis實例

14.至此redis的偽分布式集群搭建成功(完全分布式的搭建過程和該步驟相同)

