天天看點

redis單機版僞分布式叢集搭建

     搭建一個最小的叢集需要6台機器(由節點投票機制決定至少需要3台主節點,另外為了高可用每個主節點至少要備一個從節點,是以總共需要6個節點。這裡6個節點全部設在一台機上,通過端口号來分别。實作僞分布式。)

    1.在/usr/local/目錄下建立檔案夾redisCluster,并在redisCluster目錄下建立6個檔案夾

    mkdir /usr/local/redisCluster
    mkdir /usr/local/redisCluster/redis0{1,2,3,4,5,6}
           

    2.複制單機單執行個體下可正常啟動redis情況下的 /usr/local/bin 目錄下的所有檔案分别到上面建立的6個檔案夾中

    cp /usr/local/bin/* /usr/local/redisCluster/redis01/
    cp /usr/local/bin/* /usr/local/redisCluster/redis02/
    cp /usr/local/bin/* /usr/local/redisCluster/redis03/
    cp /usr/local/bin/* /usr/local/redisCluster/redis04/
    cp /usr/local/bin/* /usr/local/redisCluster/redis05/
    cp /usr/local/bin/* /usr/local/redisCluster/redis06/
 
           

    3.再對每個執行個體裡面的redis.conf進行修改(這裡修改其中一份,然後其他5份進行複制之後修改下端口号即可,可以用ssh工具将該配置檔案下載下傳到windows中進行編輯修改,更快捷省事) 

    vi /usr/local/redisCluster/redis01/redis.conf
           

找到以下幾處進行修改(修改這10處就基本滿足叢集啟動條件了,其他參數可自行百度)

    第1處: port 6379				    ————> 值 改成 7001
    第2處: daemonize no 			    ————> 值 改成 yes
    第3處: pidfile /var/run/redis_6379.pid  	    ————> 值 改成 ./redis_7001.pid
    第4處: logfile "" 				    ————> 值 改成 "./logs/redis_7001.log"
    第5處: bind 127.0.0.1 			    ————> 值 改成 本機IP(如我這裡是192.168.25.129)
    第6處: protected-mode yes 			    ————> 值 改成 no
    第7處: # cluster-enabled yes		    ————> 去掉注釋
    第8處: # cluster-config-file nodes-6379.conf    ————> 去掉注釋 并把數字改成對應端口号,如這裡是7001
    第9處: # cluster-node-timeout 15000	            ————> 去掉注釋
    第10處:  appendonly no			    ————> 值 改成 yes
           

    4.将上面編輯号儲存的/usr/local/redisCluster/redis01/目錄下的redis.conf檔案重命名為7001.conf,然後複制5份分别放到redis02、redis03、redis04、redis05、redis06檔案夾下面(可删除掉原檔案夾中的redis.conf檔案),然後再對每個檔案夾下的.conf檔案重命名為對應端口号.conf,接着編輯裡面的内容,将之前修改為7001的全部修改成對應端口号儲存即可,這個工作放到windows中來做可以很友善快捷。(由于配置檔案中把log配到目前目錄下的logs檔案夾中,是以還要在各個檔案夾下建立logs檔案夾)

    5.将ruby腳本拷貝到redisCluster目錄下

    cp /usr/local/redis/redis-4.0.8/src/redis-trib.rb /usr/local/redisCluster/
           

   6.建立redis叢集啟動、停止的腳本以及ruby建立叢集的腳本并授權

    touch /usr/local/redisCluster/startCluster.sh
    touch /usr/local/redisCluster/shutdownCluster.sh
    touch /usr/local/redisCluster/createCluster.sh
    chmod 777 /usr/local/redisCluster/*.sh
           

    内容分别如下:

    startCluster.sh:

    cd /usr/local/redisCluster/redis01
    ./redis-server ./7001.conf
    cd /usr/local/redisCluster/redis02
    ./redis-server ./7002.conf
    cd /usr/local/redisCluster/redis03
    ./redis-server ./7003.conf
    cd /usr/local/redisCluster/redis04
    ./redis-server ./7004.conf
    cd /usr/local/redisCluster/redis05
    ./redis-server ./7005.conf
    cd /usr/local/redisCluster/redis06
    ./redis-server ./7006.conf
           

    shutdownCluster.sh:

cd /usr/local/redisCluster/redis01/
    ./redis-cli -h 192.168.199.101 -p 7001 shutdown
    cd /usr/local/redisCluster/redis02/
    ./redis-cli -h 192.168.199.101 -p 7002 shutdown
    cd /usr/local/redisCluster/redis03/
    ./redis-cli -h 192.168.199.101 -p 7003 shutdown
    cd /usr/local/redisCluster/redis04/
    ./redis-cli -h 192.168.199.101-p 7004 shutdown
    cd /usr/local/redisCluster/redis05/
    ./redis-cli -h 192.168.199.101 -p 7005 shutdown
    cd /usr/local/redisCluster/redis06/
    ./redis-cli -h 192.168.199.101 -p 7006 shutdown
           

    createCluster.sh:

ruby redis-trib.rb create --replicas 1 192.168.199.101:7001 192.168.199.101:7002 192.168.199.101:7003 192.168.199.101:7004 192.168.199.101:7005 192.168.199.101:7006
           

  最後redisCluster目錄和各個redis執行個體目錄結構如下:

  7.先用剛剛建立的腳本啟動6個執行個體,再用ruby腳本建立叢集

   cd /usr/local/redisCluster/
    ./startCluster.sh
           

       檢視程序:

 ps -ef | grep redis
           

    再運作ruby腳本建立叢集

    ./createCluster.sh
           

然後 輸 yes

這樣叢集就搭建成功了。登入任意一個節點用戶端驗證(-c 表示以叢集方式登入),也可以用redis用戶端工具RedisDesktopManager來可視化地管理redis資料庫。

cd /usr/local/redisCluster/redis01/
./redis-cli -h 192.168.199.101 -p 7001 -c
           

這樣一路順風就搭建完成了。超簡單有沒有?

但是初次搭建,可能linux中有些軟體沒有安裝,需要聯網安裝的。

主要有下面幾個:

yum -y install gcc                    ## make install 指令需要此環境
yum -y intall ruby                    ## 安裝ruby(此時安裝的可能使低版本的)
curl -L get.rvm.io | bash -s stable   ## 安裝rvm
source /usr/local/rvm/scripts/rvm     ## 使安裝的rvm立即生效
rvm install 2.4.1                     ## 通過rvm來安裝ruby進階版本
gem install redis                     ## 通過ruby的工具包gem來安裝redis接口
           

順利到此,則運作ruby腳本的環境已具備

通過startCluster.sh腳本先啟動6個執行個體,然後通過createCluster.sh腳本建立叢集即可成功.

另外,需要注意的是,在關閉redis叢集之後,再次重複步驟啟動叢集時會報錯,此時隻需要删除redis各個執行個體中生成的檔案即可再次按步驟啟動叢集(當然,這是在測試時這麼幹)。

繼續閱讀