1、创建集群文件夹
在/usr/local/下新建redis-cluster目录并在redis-cluster下新建7031~7036共6个文件夹(对应redis集群的端口号),这6个文件夹代表创建redis集群的6个节点。命令如下:
mkdir -p /usr/local/redis-cluster
mkdir 7031 7032 7033 7034 7035 7036
2、在redis-cluster目录里下载redis文件。命令如下:
cd /usr/local/redis-cluster
wget http://download.redis.io/releases/redis-4.0.12.tar.gz
tar xzf redis-4.0.12.tar.gz
cd redis-4.0.12
make
3、拷贝修改配置文件
将已有的/usr/local/redis-cluster/redis-4.0.12/下的redis.conf拷贝到新创建的7031目录中。命令如下:
cd /usr/local/redis-cluster/redis-4.0.12/
cp redis.conf /usr/local/redis-cluster/7031
修改项如下:
(1)绑定端口,port 7031
(2)绑定IP,redis所在机器的ip,如:bind 192.168.2.128
(3)指定数据存放路径,dir /usr/local/redis-cluster/7031
(4)启动集群模式,cluster-enabled yes
(5)指定集群节点配置文件,cluster-config-file nodes-7031.conf
(6)后台启动,daemonize yes
(7)指定集群节点超时时间,cluster-node-timeout 5000
(8)指定持久化方式,appendonly yes
上面红色项目最好全部设置,不然会出意想不到的错误,703x最好与节点文件夹保持一致。
将7031的redis.conf改完后再拷贝到剩下的5个目录中,然后只要全局替换redis.conf中的7031为相应的节点即可。
4、安装ruby
redis集群的启动需要用到ruby实现的redis-trib.rb,所以我们需要先安装ruby。命令如下:
yum install ruby
yum install rubygems
gem install redis
注:如果在执行gem install redis时,出现下图问题,见步骤9解决方案,或参考:https://blog.youkuaiyun.com/fengye_yulu/article/details/77628094
5、启动redis,分别启动6个redis实例。也可以用脚本循环启动。命令如下:
for((i=1;i<=6;i++)); do /usr/local/redis-cluster/redis-4.0.12/src/redis-server /usr/local/redis-cluster/703$i/redis.conf; done
查看redis实例是否启动成功。命令如下:
netstat -tunpl | grep redis-server
或者
ps -ef | grep redis-server
6、创建并启动集群
进入redis安装目录的src目录下:
cd /usr/local/redis-cluster/redis-4.0.12
./redis-trib.rb create --replicas 1 192.168.2.128:7031 192.168.2.128:7032 192.168.2.128:7033 192.168.2.128:7034 192.168.2.128:7035 192.168.2.128:7036
命令的意义如下:
给定 redis-trib.rb 程序的命令是 create,表示创建一个新的集群。选项 --replicas 1 表示为集群中的每个主节点创建一个从节点。
之后跟着的其他参数则是实例的地址列表, 指定使用这些地址所指示的实例来创建新集群。
“All 16384 slots covered.”表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。从打印出来的信息也可以看出,7031,7032,7033是主节点,其它三个是从节点。
7、客户端连接集群
集群启动成功后,我们可以在pc机上安装RedisDesktopManager客户端连接工具连接redis集群,如图:
RedisDesktopManager客户端下载地址:https://pan.baidu.com/s/1kU8sY3P
8、集群关闭
关闭集群需要逐个关闭
for((i=1;i<=6;i++)); do /usr/local/redis-cluster/redis-4.0.12/src/redis-cli -c -h 192.168.2.128 -p 703$i shutdown; done
如果重新启动集群报以下错误:
需要清除杀掉redis实例,然后删除每个节点下的临时数据文件appendonly.aof,dump.rdb,nodes-703x.conf,然后再重新启动redis实例即可启动集群。命令如下:
杀掉redis实例:
kill -s 9 1827(redis每个节点的pId)
删除每个节点下的临时数据文件:
cd /usr/local/redis-cluster/
for((i=1;i<=6;i++)); do cd 703$i; rm -rf appendonly.aof; rm -rf dump.rdb; rm -rf nodes-703$i.conf; cd ..; done
9、在执行gem install redis时,出现如下异常的处理
问题原因:CentOS7 yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2
解决方案:
1)安装RVM,命令如下:
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm
2)查看rvm库中已知的ruby版本,命令如下:
rvm list known
查询到内容如下:
3)安装一个ruby版本
rvm install 2.3.3
4)使用一个ruby版本
rvm use 2.3.3
5)设置默认版本
rvm use 2.3.3 --default
6)卸载一个已知版本
rvm remove 2.0.0
7)查看ruby版本
ruby --version
如果显示如下图,则说明安装ruby2.3.3成功
8)ruby2.3.3成功后,再安装redis,并进行之后的步骤
gem install redis