CentOS7 安裝Redis Cluster集羣

上一篇中已經講到了如何安裝單擊版Redis,這一篇咱們來講下如何安裝Cluster,關於哨兵模式這裏我就不寫文章安裝了,有興趣的同窗能夠本身去研究,哨兵模式能夠在主從模式下在建立三臺機器的哨兵集羣監控redis主從集羣便可。html

本文因爲我是在windows上建立的虛擬機,因此是每臺機器上部署2個實例,一共三臺機器6個實例。生產環境中建議都是說在6臺機器上去搭建,至少3臺機器,保證,每一個master都跟本身的slave不在同一臺機器上,若是是6臺天然更好。java

1,準備條件

首先須要在三臺機器上分別安裝Redis,安裝教程可參考:CentOS7 安裝Redis 單機版,到文章的第三步結束便可node

安裝redis出現上面的截圖後就說明redis已經安裝完畢。linux

下面我會把第四部的配置稍微改動一下 redis

2,修改配置文件

這裏同上一篇文章中的第四部是同樣的,不過是多增長了幾個配置和目錄而已,一下步驟按一臺機器爲例,其餘機器只須要更改7001端口號便可,別的不須要更改windows

(1)redis utils目錄下,有個redis_init_script腳本
(2)將redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名爲redis_7001,7001是咱們但願這個redis實例監聽的端口號
(3)修改redis_7001腳本的第6行的REDISPORT,設置爲相同的端口號(默認就是7001)
(4)建立兩個目錄:api

  • /etc/redis(存放redis的配置文件)
  • /var/redis/7001(存放redis的持久化文件)

(5)修改redis配置文件(默認在根目錄下,redis.conf),拷貝到/etc/redis目錄中,修更名稱爲7001.conf
(6)修改redis.conf中的部分配置ruby

  • port 7001
  • cluster-enabled yes
  • cluster-config-file /etc/redis-cluster/node-7001.conf
  • cluster-node-timeout 15000
  • daemonize yes
  • pidfile /var/run/redis_7001.pid
  • dir /var/redis/7001
  • logfile /var/log/redis/7001.log
  • bind 192.168.32.128(這裏須要改爲本身虛擬機的ip便可
  • appendonly yes

(7)建立上面配置中的目錄bash

  • mkdir -p /etc/redis-cluster
  • mkdir -p /var/log/redis

(8)啓動redis執行app

  • cd /etc/init.d
  • chmod 777 redis_7001
  • ./redis_7002 start

(9)確認redis進程是否啓動,ps -ef | grep redis

重複上面的步驟,分別作出6份配置文件:

7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

redis_7001,redis_7002,redis_7003,redis_7004,redis_7005,redis_7006

分別重啓後先檢查下redis狀態是否是6個服務都所有啓動。

3,建立集羣

 這裏安裝集羣須要Ruby命令,所以咱們須要安裝下Ruby,在集羣機器中隨便找一臺執行便可

  • yum install ruby //安裝ruby
  • yum install rubygems //安裝rubygems,最新版本會自動安裝

接下來咱們須要安裝Redis的Ruby接口程序

  • gem install redis

執行完成以後會發現報錯了 ,redis須要的Ruby版本最低是2.2.2,可是CentOS7 yum庫中ruby的版本支持到 2.0.0,可gem 安裝redis須要最低是2.2.2,採用rvm來更新ruby:

  1. 安裝RVM
    1. curl -L get.rvm.io | bash -s stable 
    2. find / -name rvm -print(此時可能出現問題)
    3. 若是沒有出現上面的信息,可參考:https://blog.csdn.net/lixwjava/article/details/50408070,須要執行的命令以下
    4. curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -  
      curl -L get.rvm.io | bash -s stable  
      find / -name rvm.sh  
      source /etc/profile.d/rvm.sh  
      rvm requirements  

      上面命令執行完畢後,繼續執行 find / -name rvm -print,就能夠看到上面的正確的截圖了

  2. 使剛安裝的rvm當即生效
    1. source /usr/local/rvm/scripts/rvm
  3. 查看rvm庫中ruby版本
    1. rvm list known
  4. 安裝一個ruby版本
    1. rvm install 2.4.1

  5. 使用一個ruby版本
    1. rvm use 2.4.1

       

  6. 設置默認版本
    1. rvm use 2.4.1 --default

       

  7. 卸載一個已知版本
    1. rvm remove 版本號

       

  8. 查看ruby版本
    1. ruby --version

       

  9. 到此爲止ruby的新版本就安裝完畢了,下面讓我繼續執行安裝redis  執行命令 
    gem install redis

redis cluster 集羣繼續

cp /usr/local/java/redis-4.0.9/src/redis-trib.rb /usr/local/bin/
redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
--replicas: 每一個master有幾個slave,輸入後能夠獲得下面的信息
[root@linux2 bin]# redis-trib.rb create --replicas 1 192.168.32.128:7001 192.168.32.128:7002 192.168.32.130:7003 192.168.32.130:7004 192.168.32.131:7005 192.168.32.131:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.32.128:7001
192.168.32.130:7003
192.168.32.131:7005
Adding replica 192.168.32.130:7004 to 192.168.32.128:7001
Adding replica 192.168.32.131:7006 to 192.168.32.130:7003
Adding replica 192.168.32.128:7002 to 192.168.32.131:7005
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
   slots:0-5460 (5461 slots) master
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
   replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
   slots:5461-10922 (5462 slots) master
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
   replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
   slots:10923-16383 (5461 slots) master
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
   replicates a2b5695b041c36b7fcf560225e2444a421b731ea
Can I set the above configuration? (type 'yes' to accept): //這裏若是贊成上面的分配的話請輸入yes
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.32.128:7001)
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
   slots: (0 slots) slave
   replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
   slots: (0 slots) slave
   replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
   slots: (0 slots) slave
   replicates a2b5695b041c36b7fcf560225e2444a421b731ea
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

到這裏集羣就建立完畢了

[root@linux2 bin]# redis-trib.rb check 192.168.32.128:7001 //隨時能夠用此命令來查看集羣的狀態
>>> Performing Cluster Check (using node 192.168.32.128:7001)
M: f18c22678ff0d3e3d17bc07baddab16228d07ccb 192.168.32.128:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: a2b5695b041c36b7fcf560225e2444a421b731ea 192.168.32.130:7003
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: f2f14871b8fe57eeddb3a872c5e515a34d9159c1 192.168.32.131:7005
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 98a4697532e570a8dee1a419e4f24a31a373aae3 192.168.32.128:7002
   slots: (0 slots) slave
   replicates f2f14871b8fe57eeddb3a872c5e515a34d9159c1
S: 7e39b67d363dc512a79e800bb566c3340265d457 192.168.32.130:7004
   slots: (0 slots) slave
   replicates f18c22678ff0d3e3d17bc07baddab16228d07ccb
S: ae5a841eea817745ef3a1ee5cf7cfc991c323f0d 192.168.32.131:7006
   slots: (0 slots) slave
   replicates a2b5695b041c36b7fcf560225e2444a421b731ea
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
相關文章
相關標籤/搜索