redis集群需要至少6個節點(偶數節點),3個主節點,3個從節點。注意:集群模式最好不要keys *查詢數據。
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(我用的目錄是/opt/soft/redis-3.0.0/cluster,我大部分軟件安裝在這個路徑)
cd /usr.local/cluster
4 修改配置文件redis.conf,我共用了6個節點,端口號分別為30001,30002,30003,30004,30005,30006。復制成6個redis-port.conf文件,分別更改端口號。
cp /opt/soft/redis-3.0.0/redis.conf /opt/soft/redis-3.0.0/cluster vim redis.conf
###修改配置文件中的下面選項
port 30001 #分別更改
daemonize yes #允許后台啟動,不用再另開終端
cluster-enabled yes
cluster-config-file odes
cluster-node-timeout 5000
appendonly yes
5 分別啟動6個redis實例:若該機器同時有redis-2.x,且redis-server已設置為系統命令,可使用全路徑啟動。
e.g. /opt/soft/redis-3.0.0/src/redis-server ../cluster/redis-port.conf(我的路徑)
redis-server redis-port.conf
ps -ef|grep redis 查看進程號,確認啟動情況,如下成功。
6 執行redis的創建集群命令創建集群,執行后自動確認前三個為主節點,后三個為從節點,按順序主從對應(可使用info查看)。
cd /opt/soft/redis3.0/src ./redis-trib.rb create --replicas 1 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006
6.1 執行命令后報如下錯誤:
[root@bjdhj-118-38 src]# ./redis-trib.rb create --replicas 1 127.0.0.1:30001 127.0.0.1:30002 127.0.0.1:30003 127.0.0.1:30004 127.0.0.1:30005 127.0.0.1:30006:
/usr/bin/env: ruby: 沒有那個文件或目錄
因為需要ruby命令,而該機器未安裝,安裝命令
yum install ruby
6.2 再次執行命令后報如下錯誤:
./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24
提示缺少rubygems組件,使用yum安裝,安裝命令:
yum install rubygems
6.3 再次執行名后報如下錯誤:
/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
提示不能加載redis,是因為缺少redis和ruby的接口,使用gem 安裝,安裝命令:
gem install redis
7 再次執行命令,成功:
輸入“yes”安裝成功,連接各節點檢查確認正常。至此redis集群即搭建成功!可以跑數據進去來使用啦。叮叮叮