redis3.0.0 集群安裝詳細步驟


Redis集群部署文檔(centos6系統)

Redis集群部署文檔(centos6系統)

 
         

(要讓集群正常工作至少需要3個主節點,在這里我們要創建6個redis節點,其中三個為主節點,三個為從節點,對應的redis節點的ip和端口對應關系如下)

 
         

127.0.0.1:7000

 
         

127.0.0.1:7001

 
         

127.0.0.1:7002

 
         

127.0.0.1:7003

 
         

127.0.0.1:7004

 
         

127.0.0.1:7005

 
         

 

 
         

1:下載redis。官網下載3.0.0版本,之前2.幾的版本不支持集群模式

 
         

下載地址:https://github.com/antirez/redis/archive/3.0.0-rc2.tar.gz

 
         

2:上傳服務器,解壓,編譯

 
         

tar -zxvf redis-3.0.0-rc2.tar.gz 

 
         

mv redis-3.0.0-rc2.tar.gz redis3.0

 
         

cd /usr/local/redis3.0

 
         

make

 
         

make install

 
         

3:創建集群需要的目錄

 
         

mkdir -p /usr.local/cluster

 
         

cd /usr.local/cluster

 
         

mkdir 7000

 
         

mkdir 7001

 
         

mkdir 7002

 
         

mkdir 7003

 
         

mkdir 7004

 
         

mkdir 7005

 
         

 

 
         

4:修改配置文件redis.conf

 
         

cp /usr/local/redis3.0/redis.conf  /usr.local/cluster

 
         

vi redis.conf

 
         

##修改配置文件中的下面選項

 
         

port 7000

 
         

daemonize yes

 
         

cluster-enabled yes

 
         

cluster-config-file nodes.conf

 
         

cluster-node-timeout 5000

 
         

appendonly yes

 
         

##修改完redis.conf配置文件中的這些配置項之后把這個配置文件分別拷貝到7000/7001/7002/7003/7004/7005目錄下面

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7000

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7001

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7002

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7003

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7004

 
         

cp /usr/local/cluster/redis.conf /usr/local/cluster/7005

 
         

 

 
         

##注意:拷貝完成之后要修改7001/7002/7003/7004/7005目錄下面redis.conf文件中的port參數,分別改為對應的文件夾的名稱

 
         

 

 
         

5:分別啟動這6個redis實例

 
         

cd /usr/local/cluster/7000

 
         

redis-server redis.conf

 
         

cd /usr/local/cluster/7001

 
         

redis-server redis.conf

 
         

cd /usr/local/cluster/7002

 
         

redis-server redis.conf

 
         

cd /usr/local/cluster/7003

 
         

redis-server redis.conf

 
         

cd /usr/local/cluster/7004

 
         

redis-server redis.conf

 
         

cd /usr/local/cluster/7005

 
         

redis-server redis.conf

 
         

 

 
         

 

 
         

##啟動之后使用命令查看redis的啟動情況ps -ef|grep redis

 
         

如下圖顯示則說明啟動成功

 
         

 

 
         

6:執行redis的創建集群命令創建集群

 
         

cd /usr/local/redis3.0/src

 
         

./redis-trib.rb  create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

 
         

6.1執行上面的命令的時候會報錯,因為是執行的ruby的腳本,需要ruby的環境

 
         

錯誤內容:/usr/bin/env: ruby: No such file or directory

 
         

所以需要安裝ruby的環境,這里推薦使用yum install ruby安裝

 
         

yum install ruby

 
         

 

 
         

6.2然后再執行第6步的創建集群命令,還會報錯,提示缺少rubygems組件,使用yum安裝

 
         

 

 
         

錯誤內容:

 
         

./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)

 
         

from ./redis-trib.rb:24

 
         

yum install rubygems

 
         

6.3再次執行第6步的命令,還會報錯,提示不能加載redis,是因為缺少redis和ruby的接口,使用gem 安裝

 
         

錯誤內容:

 
         

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)

 
         

from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

 
         

from ./redis-trib.rb:25

 
         

 

 
         

gem install redis

 
         

6.4 再次執行第6步的命令,正常執行

 
         

 

 
         

wKioL1Ywk0TiSn0nAAPFRnrOzfA306.jpg

 
         

輸入yes,然后配置完成。

 
         

 

 
         

wKioL1Ywk0bym_SLAAQIBPOn5jY753.jpg

 
         

 

 
         

至此redis集群即搭建成功!

 
         

7:使用redis-cli命令進入集群環境

 
         

redis-cli -c -p 7000

 
         
##修改完redis.conf配置文件中的這些配置項之后把這個配置文件分別拷貝到7000/7001/7002/7003/7004/7005目錄下面 
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7000
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7001
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7002
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7003
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7004
cp
/usr/local/cluster/redis.conf /usr/local/cluster/7005
##注意:拷貝完成之后要修改7001
/7002/7003/7004/7005目錄下面redis.conf文件中的port參數,分別改為對應的文件夾的名稱

5:分別啟動這6個redis實例 cd /usr/local/cluster/7000 redis-server redis.conf cd /usr/local/cluster/7001 redis-server redis.conf cd /usr/local/cluster/7002 redis-server redis.conf cd /usr/local/cluster/7003 redis-server redis.conf cd /usr/local/cluster/7004 redis-server redis.conf cd /usr/local/cluster/7005 redis-server redis.conf ##啟動之后使用命令查看redis的啟動情況ps -ef|grep redis 如下圖顯示則說明啟動成功 6:執行redis的創建集群命令創建集群 cd /usr/local/redis3.0/src ./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 6.1執行上面的命令的時候會報錯,因為是執行的ruby的腳本,需要ruby的環境 錯誤內容:/usr/bin/env: ruby: No such file or directory 所以需要安裝ruby的環境,這里推薦使用yum install ruby安裝 yum install ruby 6.2然后再執行第6步的創建集群命令,還會報錯,提示缺少rubygems組件,使用yum安裝 錯誤內容: ./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError) from ./redis-trib.rb:24 yum install rubygems 6.3再次執行第6步的命令,還會報錯,提示不能加載redis,是因為缺少redis和ruby的接口,使用gem 安裝 錯誤內容: /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError) from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./redis-trib.rb:25 gem install redis

6.4 再次執行第6步的命令,正常執行

 
         

 

 
         

wKioL1Ywk0TiSn0nAAPFRnrOzfA306.jpg

 
         

輸入yes,然后配置完成。

 
         

 

 
         

wKioL1Ywk0bym_SLAAQIBPOn5jY753.jpg



至此redis集群即搭建成功!
7:使用redis-cli命令進入集群環境
redis-cli -c -p 7000

本文出自 “智能化未來_XFICC” 博客,請務必保留此出處http://xficc.blog.51cto.com/1189288/1707366



准備了3台機器,每台機器上面起7000 和7001端口
http://download.redis.io/releases/redis-3.0.2.tar.gz
解壓后到包里面
 
         
make
 
         
make install 安裝就好了
 
         
創建集群需要的目錄
 
         
 mkdir /usr/local/redis/7000 -p
 
         
mkdir /usr/local/redis/7001 -p
 
         
修改配置文件redis.conf
 
         
cd /usr/local/redis/7000/
    vim redis.conf
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
##修改完redis.conf配置文件中的這些配置項之后把這個配置文件分別拷貝到7001 和另外2台機器上
##注意:拷貝完成之后端口要修改7001
分別啟動這6個redis實例
這樣每台機器上面啟動2個實例
/usr/local/redis/7000/redis-server /usr/local/redis/7000/redis.conf 
/usr/local/redis/7001/redis-server /usr/local/redis/7001/redis.conf 

##啟動之后使用命令查看redis的啟動情況ps -ef|grep redis

6:執行redis的創建集群命令創建集群

6:09:33] PWD => /usr/local

40># ~/redis-3.0.2/src/redis-trib.rb create --replicas 192.168.7.232:7000 192.168.7.239:7000 192.168.7.246:7000 192.168.7.232:7001 192.168.7.239:7001 192.168.7.246:7001

/root/redis-3.0.2/src/redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)

 

        from /root/redis-3.0.2/src/redis-trib.rb:24

 

報錯了,提示缺少rubygems組件,使用yum安裝

yum -y install rubygems

安裝好后還是報錯

/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)

        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

        from /root/redis-3.0.2/src/redis-trib.rb:25

提示不能加載redis,是因為缺少redis和ruby的接口,使用gem 安裝

# gem install redis

# ~/redis-3.0.2/src/redis-trib.rb create --replicas 192.168.7.232:7000 192.168.7.237:7000 192.168.7.246:7000 192.168.7.232:7001 192.168.7.237:7001 192.168.7.246:7001

>>> Creating cluster

Connecting to node 192.168.7.237:7000: OK

Connecting to node 192.168.7.246:7000: OK

Connecting to node 192.168.7.232:7001: OK

Connecting to node 192.168.7.237:7001: OK

Connecting to node 192.168.7.246:7001: OK

*** ERROR: Invalid configuration for cluster creation.

*** Redis Cluster requires at least 3 master nodes.

*** This is not possible with 5 nodes and 192 replicas per node.

*** At least 579 nodes are required.

居然只連接5個,奇怪了,后來檢查才發現在--replicas 后面要加一個數字才可以

6:23:23] PWD => /usr/local

52># ~/redis-3.0.2/src/redis-trib.rb create --replicas 1 192.168.7.232:7000 192.168.7.237:7000 192.168.7.246:7000 192.168.7.232:7001 192.168.7.237:7001 192.168.7.246:7001

>>> Creating cluster

Connecting to node 192.168.7.232:7000: OK

Connecting to node 192.168.7.237:7000: OK

Connecting to node 192.168.7.246:7000: OK

Connecting to node 192.168.7.232:7001: OK

Connecting to node 192.168.7.237:7001: OK

Connecting to node 192.168.7.246:7001: OK

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

192.168.7.246:7000

192.168.7.237:7000

192.168.7.232:7000

Adding replica 192.168.7.237:7001 to 192.168.7.246:7000

Adding replica 192.168.7.246:7001 to 192.168.7.237:7000

Adding replica 192.168.7.232:7001 to 192.168.7.232:7000

M: e538aeff6aa194f52c706238448a3f48c561174c 192.168.7.232:7000

   slots:10923-16383 (5461 slots) master

M: 834632a4e4f2af3a824623928b4b85203cd2df11 192.168.7.237:7000

   slots:5461-10922 (5462 slots) master

M: e538aeff6aa194f52c706238448a3f48c561174c 192.168.7.246:7000

   slots:0-5460 (5461 slots) master

S: 2aabb6d31a8c4310aedbe98b43d8ae1725265eac 192.168.7.232:7001

   replicates e538aeff6aa194f52c706238448a3f48c561174c

S: 80ad1ce65e5d1ab60eef58cf3d8e001cc0cbc11d 192.168.7.237:7001

   replicates e538aeff6aa194f52c706238448a3f48c561174c

S: 4c37e13f1339db30699586e8d6a38f2778606908 192.168.7.246:7001

   replicates 834632a4e4f2af3a824623928b4b85203cd2df11

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.......................................

在這里的時候卡了很久沒過去,我就結束了想重新再試下

Connecting to node 192.168.7.232:7000: OK

[ERR] Node 192.168.7.232:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

提示有數據了,我想是開始初始化的時候有寫數據進去了

把7000目錄下生成的appendonly.aof    nodes.conf 刪除掉重啟啟動服務,

想起來我是把7.232上面的服務啟動后把7000 7001 直接傳到237 和246上面去的,為了節省建目錄和copy配置文件的操作,這樣導致機器加入集群的時候一直在等待,

把3台機器的6個服務的appendonly.aof    nodes.conf都刪了 重新啟動服務再執行

# ~/redis-3.0.2/src/redis-trib.rb create --replicas 1 192.168.7.232:7000 192.168.7.237:7000 192.168.7.246:7000 192.168.7.232:7001 192.168.7.237:7001 192.168.7.246:7001 

>>> Creating cluster

Connecting to node 192.168.7.232:7000: OK

Connecting to node 192.168.7.237:7000: OK

Connecting to node 192.168.7.246:7000: OK

Connecting to node 192.168.7.232:7001: OK

Connecting to node 192.168.7.237:7001: OK

Connecting to node 192.168.7.246:7001: OK

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

192.168.7.246:7000

192.168.7.237:7000

192.168.7.232:7000

Adding replica 192.168.7.237:7001 to 192.168.7.246:7000

Adding replica 192.168.7.246:7001 to 192.168.7.237:7000

Adding replica 192.168.7.232:7001 to 192.168.7.232:7000

M: d8003ec51e97f8135b55e6c318e1bcf7b940e668 192.168.7.232:7000

   slots:10923-16383 (5461 slots) master

M: 594a3e1a587c4fb67fc224f0593993918c0360af 192.168.7.237:7000

   slots:5461-10922 (5462 slots) master

M: 9ebe5263d08594bfd5d218a36df8315c5ce3f0dd 192.168.7.246:7000

   slots:0-5460 (5461 slots) master

S: 1d716af8951061e412fcc0b6e92e4212a8730000 192.168.7.232:7001

   replicates d8003ec51e97f8135b55e6c318e1bcf7b940e668

S: 30882cbdf6ab715aea7928e0adf25b96fc67aa87 192.168.7.237:7001

   replicates 9ebe5263d08594bfd5d218a36df8315c5ce3f0dd

S: 4754be547328d05b986bf94fe9d77a4cd32b1f68 192.168.7.246:7001

   replicates 594a3e1a587c4fb67fc224f0593993918c0360af

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.7.232:7000)

M: d8003ec51e97f8135b55e6c318e1bcf7b940e668 192.168.7.232:7000

   slots:10923-16383 (5461 slots) master

M: 594a3e1a587c4fb67fc224f0593993918c0360af 192.168.7.237:7000

   slots:5461-10922 (5462 slots) master

M: 9ebe5263d08594bfd5d218a36df8315c5ce3f0dd 192.168.7.246:7000

 

   slots:0-5460 (5461 slots) master

   slots:0-5460 (5461 slots) master

M: 1d716af8951061e412fcc0b6e92e4212a8730000 192.168.7.232:7001

   slots: (0 slots) master

   replicates d8003ec51e97f8135b55e6c318e1bcf7b940e668

M: 30882cbdf6ab715aea7928e0adf25b96fc67aa87 192.168.7.237:7001

   slots: (0 slots) master

   replicates 9ebe5263d08594bfd5d218a36df8315c5ce3f0dd

M: 4754be547328d05b986bf94fe9d77a4cd32b1f68 192.168.7.246:7001

   slots: (0 slots) master

   replicates 594a3e1a587c4fb67fc224f0593993918c0360af

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

使用redis-cli命令進入集群環境

redis-cli -c -p 7000

127.0.0.1:7000> get testkey001

(nil)

127.0.0.1:7000> set testkey002 testvalue002

-> Redirected to slot [401] located at 192.168.7.246:7000

OK

192.168.7.246:7000> get testkey002

"testvalue002"

192.168.7.246:7000> set testkey003 testvalue003

OK

192.168.7.246:7000> exit

 

 


免責聲明!

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



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