在同一个主机中部署三主三从的redis集群,redis节点为7001-7006。
新建redis集群目录:mkdir -p /usr/local/redis-cluster,在该目录下创建6个目录:7001-7006,分别为6个redis节点的工作目录:
mkdir -p 7001 7002 7003 7004 7005 7006
redis进行源码安装,先要安装gcc,再make redis。执行以下命令安装redis:
yum -y install gcc gcc-c++ libstdc++-devel
执行以下命令安装ruby2.5,如果ruby版本过低,无法启动redis集群。
yum install -y centos-release-scl-rh
yum install -y rh-ruby25
scl enable rh-ruby25 bash
检验并查看ruby版本:
ruby -v
最后执行如下命令:
gem install redis
从redis官网https://redis.io/下载redis最新版本redis-4.0.11。解压redis:
tar -zxvf redis-4.0.11.tar.gz
创建redis安装目录:
mkdir -p /usr/local/redis
进入解压后的redis-4.0.11目录,执行make命令,将redis安装进/usr/local/redis:
make install PREFIX=/usr/local/redis
将redis配置文件redis.conf复制到集群目录下:
cp redis.conf /usr/local/redis-cluster
将redis安装后的bin目录复制进6个redis节点工作目录中:
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7001
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7002
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7003
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7004
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7005
cp -r /usr/local/redis/bin /usr/local/redis-cluster/7006
最后配置6个节点的配置文件redis.conf,配置修改如下:
#bind 127.0.0.1
protected-mode no
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
屏蔽限制本地访问,在bind 127.0.0.1之前加#(同机器下,可能不需要改,未做测试)。
将redis.conf文件复制进7001-7006中:
cp redis.conf 7001
cp redis.conf 7002
cp redis.conf 7003
cp redis.conf 7004
cp redis.conf 7005
cp redis.conf 7006
分别修改6个节点中的redis.conf中的port端口配置,分别配置成7001-7006。
配置好redis.conf后,便可以启动6个redis节点,分别在6个节点目录下执行如下命令启动6个节点:
./bin/redis-server ./redis.conf
执行ps -ef|grep redis可查看启动的6个节点。
进入最开始解压出来的redis-4.0.11/src目录下,执行如下命令启动集群:
./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
进入任一redis节点,如进入7001节点:
进入7001目录:
cd /usr/local/redis-cluster/7001
登录7001节点:
./bin/redis-cli -c -p 7001
写入一个数据:
set redis cluster
之后进入其他节点,查看redis中的数据,如登录7005节点:
./bin/redis-cli -c -p 7005
查看redis数据:
get redis
服务器 | redis节点 |
node-i(192.168.0.111) | 7001,7002 |
node-ii(192.168.0.133) | 7003,7004 |
node-iii(192.168.0.155) | 7005,7006 |
三个节点都关闭防火墙:
chkconfig iptables off
systemctl stop iptables
systemctl disable iptables
systemctl stop firewalld
systemctl disable firewalld
查看防火墙状态:
systemctl status iptables
systemctl status firewalld
如上。
如上。
(1)、node-i(192.168.0.111)
(a).安装redis
创建redis目录:
mkdir -p /usr/local/redis-i
mkdir -p /usr/local/redis-cluster/7001 /usr/local/redis-cluster/7002
解压redis:
tar -zxvf redis-4.0.11.tar.gz
进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-i目录下:
make install PREFIX=/usr/local/redis-i
复制redis.conf到redis集群节点目录下:
cp redis.conf /usr/local/redis-cluster/7001
cp redis.conf /usr/local/redis-cluster/7002
进入/usr/local/redis-i目录,将生成的 bin目录复制到redis集群节点目录下:
cp -r bin /usr/local/redis-cluster/7001
cp -r bin /usr/local/redis-cluster/7002
分别修改节点7001、7002的配置文件redis.conf,修改如下:
7001:
bind 192.168.0.111
protected-mode no
port 7001
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
7002:
bind 192.168.0.111
protected-mode no
port 7002
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
(b).启动redis节点
分别启动7001和7002节点:
分别在/usr/local/redis-cluster/7001和/usr/local/redis-cluster/7002目录,执行如下命令:
./bin/redis-server ./redis.conf
通过ps命令查看启动的redis节点:
ps -ef|grep redis
(2)、node-ii(192.168.0.133)
(a).安装redis
创建redis目录:
mkdir -p /usr/local/redis-ii
mkdir -p /usr/local/redis-cluster/7003 /usr/local/redis-cluster/7004
解压redis:
tar -zxvf redis-4.0.11.tar.gz
进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-ii目录下:
make install PREFIX=/usr/local/redis-ii
复制redis.conf到redis集群节点目录下:
cp redis.conf /usr/local/redis-cluster/7003
cp redis.conf /usr/local/redis-cluster/7004
进入/usr/local/redis-ii目录,将生成的 bin目录复制到redis集群节点目录下:
cp -r bin /usr/local/redis-cluster/7003
cp -r bin /usr/local/redis-cluster/7004
分别修改节点7003、7004的配置文件redis.conf,修改如下:
7003:
bind 192.168.0.133
protected-mode no
port 7003
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
7004:
bind 192.168.0.133
protected-mode no
port 7004
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
(b).启动redis节点
分别启动7003和7004节点:
分别在/usr/local/redis-cluster/7003和/usr/local/redis-cluster/7004目录,执行如下命令:
./bin/redis-server ./redis.conf
通过ps命令查看启动的redis节点:
ps -ef|grep redis
(3)、node-iii(192.168.0.155)
(a).安装redis
创建redis目录:
mkdir -p /usr/local/redis-iii
mkdir -p /usr/local/redis-cluster/7005 /usr/local/redis-cluster/7006
解压redis:
tar -zxvf redis-4.0.11.tar.gz
进入redis-4.0.11目录,执行make命令,将redis安装在/usr/local/redis-iii目录下:
make install PREFIX=/usr/local/redis-iii
复制redis.conf到redis集群节点目录下:
cp redis.conf /usr/local/redis-cluster/7005
cp redis.conf /usr/local/redis-cluster/7006
进入/usr/local/redis-iii目录,将生成的 bin目录复制到redis集群节点目录下:
cp -r bin /usr/local/redis-cluster/7005
cp -r bin /usr/local/redis-cluster/7006
分别修改节点7005、7006的配置文件redis.conf,修改如下:
7005:
bind 192.168.0.155
protected-mode no
port 7005
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
7006:
bind 192.168.0.155
protected-mode no
port 7006
daemonize yes
cluster-enabled yes
cluster-node-timeout 15000
(b).启动redis节点
分别启动7005和7006节点:
分别在/usr/local/redis-cluster/7005和/usr/local/redis-cluster/7006目录,执行如下命令:
./bin/redis-server ./redis.conf
通过ps命令查看启动的redis节点:
ps -ef|grep redis
以上步骤完成,6个redis节点都已经启动完成。现在启动redis集群,在任一服务器上都可以启动集群,进入最开始解压出来的redis-4.0.11目录的src子目录,执行如下命令启动redis集群:
./redis-trib.rb create --replicas 1 192.168.0.111:7001 192.168.0.111:7002 192.168.0.133:7003 192.168.0.133:7004 192.168.0.155:7005 192.168.0.155:7006
从任一主机进入任一redis节点,如从192.168.0.111主机中进入7001节点:
进入7001目录:
cd /usr/local/redis-cluster/7001
登录7001节点:
./bin/redis-cli -c -h 192.168.0.111 -p 7001
写入一个数据:
set redis cluster
之后进入其他节点,查看redis中的数据,如登录7005节点:
./bin/redis-cli -c -h 192.168.0.155 -p 7005
查看redis数据:
get redis