# Redis集群的搭建
準備6臺redis服務器,具體要求如下:
|ip地址 | 端口 | etho | 日志文件名 |
---|---|---|---
192.168.166.207 | 6380 | 都可以接收連接請求 | redis51.log
192.168.166.207 | 7701 | 都可以接收連接請求 | redis52.log
192.168.166.208 | 6380 | 都可以接收連接請求 | redis53.log
192.168.166.208 | 7701 | 都可以接收連接請求 | redis54.log
192.168.166.209 | 6380 | 都可以接收連接請求 | redis55.log
192.168.166.209 | 7701 | 都可以接收連接請求 | redis56.log
注意:##以上為3臺主redis,剩下的3臺分別在主redis上做多實例。開放端口。
# 環境準備
**# 1 在6臺redis服務器上運行服務,按照如下要求修改配置文件后,重啟redis服務。**
```
]#vim /etc/redis/6380.conf
bind 192.168.166.207 #只指定物理接口ip地址
port 6380 #不允許相同
daemonize yes
cluster-enabled yes
pidfile /var/run/redis_51.pid #不允許相同
pidfile nodes-6380.conf #不允許相同
cluster-node-timeout 5000 #集群節點之間通信超時時間單位秒
:wq
```
**# 2.服務啟動**
```
1>.停止服務
]# redis-cli -h 192.168.166.207 -p 6380 [ -a 密碼 ] shutdown
2>.啟動服務
]# /etc/init.d/redis_6380 start
3>.連接服務
[root@host56 ~]# redis-cli -h 192.168.4.56 -p 6056
```
**# 3.安裝解釋ruby代碼的軟件包**
```
[root@host51 ~]# yum -y install ruby rubygems
[root@host51 ~]# rpm -q rubygems ruby
rubygems-2.0.14.1-30.el7.noarch
ruby-2.0.0.648-30.el7.x86_64
```
**# 4.安裝ruby連接redis 接口程序 gem**
```
[root@host51 redis-cluster]# which gem
/usr/bin/gem
[root@host51 redis-cluster]# gem install redis
注意:在這里版本很重要,一定要查看自己gem和ruby的版本 ,否則集群無法創建成功。
補充:對于以上的升級方案:
1>.首先安裝rvm安裝會使用的包:
#yum install gcc-c++ patch readline readline-devel zlib zlib-devel \
libyaml-devel libffi-devel openssl-devel make \
bzip2 autoconf automake libtool bison iconv-devel sqlite-devel
2>.之后便是安裝rvm:
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -L get.rvm.io | bash -s stable
3>.配置rvm的運行環境:
source /etc/profile.d/rvm.sh
rvm reload
4>.查看版本庫:
rvm list known
5>.最后便可安裝ruby了,當然版本可以任選,反正我選2.4.4
rvm install 2.4.4
6>.檢查安裝情況
rvm list
7>.設置默認運行的ruby版本:
rvm use 2.4.2 --default
8>.升級gem
wget https://rubygems.org/rubygems/rubygems-2.7.7.zip
gem update --system
gem install rubygems-update
update_rubygems
ruby setup.rb --help
```
**# 3.生成創建集群的腳本redis-trib.rb**
```
[root@host51 src]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@host51 src]# cd
[root@host51 ~]# cp redis-4.0.8/src/redis-trib.rb /usr/local/bin/
```
**# 4.創建集群:**
```
[root@host51 ~]# redis-trib.rb create --replicas 1 \
192.168.166.207:6380 \
192.168.166.207:7001 \
192.168.166.208:6380 \
192.168.166.208:7001 \
192.168.166.209:6380 \
192.168.166.209:7001
cat /var/lib/redis/6052/nodes-6052.conf #集群配置文件
每臺 redis服務 在本機登錄 查看集群信息
```
**# 5.檢測集群**
```
redis-trib.rb check 192.168.166.207:6380
>>> Performing Cluster Check (using node 192.168.166.207:6380)
S: b33290c16e796b87b41aa3749e373c57786749d8 192.168.166.207:6380
slots: (0 slots) slave
replicates b6aaa9768e32356b82a80b74c96b43700a6689fa
M: 9f35587e04ef19a9662525a7653b36a620d89ca5 192.168.166.207:7701
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: daafc5ff19fb57a359d2a32f05705fc37e9d8a12 192.168.166.208:6380
slots: (0 slots) slave
replicates 1c0260b0b0ffc998f1b29852b01d1d0d9196acb3
M: b6aaa9768e32356b82a80b74c96b43700a6689fa 192.168.166.209:6380
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 1c0260b0b0ffc998f1b29852b01d1d0d9196acb3 192.168.166.208:7701
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: f4103866ad625d94d48f7251b43c42e9471c458a 192.168.166.209:7701
slots: (0 slots) slave
replicates 9f35587e04ef19a9662525a7653b36a620d89ca5
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
```