Redis集群(五):集群搭建


一、本文目的
       演示在一台機器上搭建3主3從的redis集群,通過演示了解redis集群的搭建,使用和注意事項     

二、搭建說明
       1、同一台機器搭建3主3從的偽集群
       2、使用端口7111~7116,集群端口為端口前+1,如果使用端口7111,則其集群通信端口為17111,
             redis.config的配置如下:

daemonize port pidfile logfile cluster-enabled cluster-config-file cluster-node-timeout
7111 yes 7111 /var/run/redis7111.pid "redis7111.log" yes nodes-7111.conf 5000
7112 yes 7112 /var/run/redis7112.pid "redis7112.log" yes nodes-7112.conf 5000
7113 yes 7113 /var/run/redis7113.pid "redis7113.log" yes nodes-7113.conf 5000
7114 yes 7114 /var/run/redis7114.pid "redis7114.log" yes nodes-7114.conf 5000
7115 yes 7115 /var/run/redis7115.pid "redis7115.log" yes nodes-7115.conf 5000
7115 yes 7116 /var/run/redis7116.pid "redis7116.log" yes nodes-7116.conf 5000
           3、需要打開7111~7116、17111~17116一共12個端口

三、搭建過程
         1、安裝搭建說明修改配置文件及打開所有端口,並啟動6個redis                
          2、創建redis集群是使用ruby命令,故需要安裝以下軟件
1
2
3
4
5
6
7
8
9
安裝 ruby 和 rubygems(注意: 需要 ruby 的版本在 1.8.7 以上)
# yum install ruby rubygems
 
檢查 ruby 版本:
# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
 
gem 安裝 redis ruby 接口:
# gem install redis

         3、執行創建集群的命令(可在任何一個redis的src目錄下執行)

                 a) redis-trib.rb  創建集群的rube命令
                 b) create 創建集群

                 c)  replicas 每個master包含一個slaver

                 d) 192.168.146.131:7111 每個redis實例的ip+端口,每個實例根據空格分開

1
2
3
cd /usr/local/redis7111/src
 
./redis-trib.rb create replicas 1 192.168 . 146.131 : 7111 192.168 . 146.131 : 7112 192.168 . 146.131 : 7113 192.168 . 146.131 : 7114 192.168 . 146.131 : 7115 192.168 . 146.131 : 7116

            4、系統分配Master、Slaver集群關系


                   5、Slot插槽分配結果


四、集群的測試
              1、設置key  

                2、 在另外一個集群機器上讀取剛設置的key


                  3、查看集群間的關系、Master/Slaver之間的關系


 

五、總結
  1. 集群中各台機器的配置信息一致,Master/Slaver關系是在創建集群時由系統分配
  2. redis集群公用16384個slot,分配給不同的Master
  3. 每個key最終都會位於某一個slot,讀取key時會先轉向到某一個slot,然后讀取其中的值
  4. 新增集群或減少集群(如新增或減少Master)會重新分配slot
  5. 集群的Master/Slaver不知道怎么做容災,自動切換等,等待進一步研究

六、參考資料


 
 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM