谨以此文记录搭建redis集群的过程和问题记录
1、角色划分:
三台机器cdhmaster(172.29.41.211) 、cdhslave1(172.29.41.237)、cdhslave2(172.29.41.238)
这里建立6个redis节点其中三个为主节点三个位从节点 对应的ip与端口如下:
Master: cdhmaster(172.29.41.211) :7000
Slaver: cdhmaster(172.29.41.211) :7001
Master: cdhslave1(172.29.41.237) :7000
Slaver: cdhslave1(172.29.41.237):7001
Master: cdhslave1(172.29.41.237):7000
Slaver: cdhslave1(172.29.41.237):7001
2、上传安装包到三个服务器,解压,编译
tar -zxvf redis-3.2.3.tar.gz -C /opt/
cd /opt
mv redis-3.2.3 redis
cd redis/
make
make install
3、创建集群需要的目录
三台服务器都创建如下目录
mkdir -p /opt/redis/7000
mkdir -p /opt/redis/7001
4、配置三台服务器的配置文件redis.conf
cp /opt/redis/redis.conf /opt/redis/7000
cd /opt/redis/7000
vi redis.conf
修改配置文件中的下面选项
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes-port.conf
cluster-node-timeout 5000
appendonly yes
同理将次配置文件复制到/opt/redis/7001/中 做同样的修改(port为7001)
将7000 7001两个文件夹分别用scp命令复制到cdhslave1 cdhslave2对应目录中
5、分别启动每台服务器的两个redis实例
cd /opt/redis/7000
redis-server redis.conf
cd /opt/redis/7001
redis-server redis.conf
启动之后使用命令查看redis的启动情况 ps -ef|grep redis
如下图显示则说明启动成功
6、执行redis的创建集群命令创建集群
在cdhmaster服务器上执行如下命令
/opt/redis/src/redis-trib.rb create –replicas 1 cdhmaster:7000 cdhslave1:7000 cdhslave2:7000 cdhmaster:7001 cdhslave1:7001 cdfslave2:7001 (一开始用的是主机名 后来查阅发现集群对主机名支持不太好 所以后来换成了ip:port的形式
)
此时出现错误 没有ruby目录 因此需要执行yum install ruby 安装ruby
继续执行建立集群的命令
此时还会报错,提示缺少rubygems组件,使用yum安装 yum install rubygems
继续执行建立集群的命令
此时还会报错,提示不能加载redis,是因为缺少redis和ruby的接口,使用gem 安装 gem install redis --version 3.0.0
(此时提示仓库没有 要进行gem换源 gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
)
但更换提示出错,上网查了之后发现可能是安全证书的问题 最后搞不定 用gem install redis
命令又成功装上了
继续执行建立集群的命令。此时可以成功(如果失败并提示 slort **** is busy 将主机名换成ip 将7000 7001下的文件除了redis.conf都删除 然后重启各台机器上的redis服务即可
)
7 验证
在cdhmaster上登录reids客户端
redis-cli -c -h 172.29.41.211-p 7000 (-c表示使用集群模式 否则执行命令会一直提示error MOVED…)
输入cluster nodes
查看集群情况,如下为正常状态
至此redis集群搭建完毕 可以去查查redis集群相关命令以及配置