一 环境准备
操作系统:CentOS 7.x
192.168.3.200 dubbo-01 7001 7002
192.168.3.201 dubbo-02 7003 7004
192.168.3.202 dubbo-03 7005 7006
二 每一个节点创建对应的目录
dubbo-01机器上执行:
mkdir -p /opt/app/redis-cluster/node-7001{1,2}/{conf,logs,data}
dubbo-02机器上执行:
mkdir -p/opt/app/redis-cluster/node-7001{3,4}/{conf,logs,data}
dubbo-03机器上执行:
mkdir -p/opt/app/redis-cluster/node-7001{5,6}/{conf,logs,data}
三 把redis的redis.conf文件拷贝到每一个节点的node-700{N}/conf目录下,开始修改配置文件
以node-7001为例子,其余节点都参考这个配置修改,当然后有些事必要的,有些可以不是必须的,比如daemonize,logfile等,多说一下,如果没有配置logfile,那么就会输出到标准输出
bind 192.168.3.200
port 7001
daemonize yes
pidfile /opt/app/redis-cluster/node-7001/redis.pid
logfile /opt/app/redis-cluster/node-7001/logs/redis.log
appendonly yes
cluster-enabled yes
cluster-config-file node.conf
dir /opt/app/redis-cluster/node-7001/data
你也可以修改一个,然后靠配到其他节点,全局修改端口也行
,比如拷贝到node-7002/conf
然后我们开始修改端口号:
vim /opt/app/redis-cluster/node-7002/conf/redis
编辑输入::g/7001/s//7002/g进行全文替换即可
四 启动各个节点,并检测进程是否启动
各节点启动redis server
redis-server ./node-700{N}/conf/redis.conf
检测redis进程是否启动
ps –A|grep redis
[dubbo@dubbo-01 redis-cluster]$ ps -A|grep redis
4348 ? 00:00:00 redis-server
4352 ? 00:00:00 redis-server、
[dubbo@dubbo-01 redis-cluster]$ netstat –nultp
如果每一台机器都是2个进程,而且7001和7002端口也启动了,那说明启动成功,其他机器也是如此。
五 安装ruby环境和安装redis的ruby依赖接口
sudo yum install -y ruby ruby-devel rubygems
gem install redis -v 3.2.2
注意,在redis4.x安装此步骤稍微有点麻烦,因为必须是要ruby2.2才可以
六 使用redis-trib.rb 创建集群
redis-trib.rb:是一个采用ruby实现的redis集群管理工具。内部通过集群相关命令帮我们简化集群创建,检查,槽迁移和均衡等常见操作。但前提是需要安装ruby环境
创建之前确保对应的而每一个节点bind的网络接口,默认是127.0.0.1,如果要访问其他机器上的节点,这个配置肯定不行,所以我们使用IP地址;而且redis bind也不支持域名,创建集群会报错。
>>> Creating cluster
Connecting to node dubbo-01:7001: [ERR] Sorry,can't connect to node dubbo-01:7001
创建集群
redis-trib.rb create --replicas 1192.168.3.200:7001 192.168.3.200:7002 192.168.3.201:7003 192.168.3.201:7004192.168.3.202:7005 192.168.3.202:7006
如果出现了一下错误:
Can I set the above configuration? (type 'yes' toaccept): yes
/home/dubbo/.gem/ruby/gems/redis-3.2.2/lib/redis/client.rb:114:in`call': ERR Slot 0 is already busy (Redis::CommandError)
肯定是之前创建的时候失败了,现在重新创建有问题;解决办法:
删除dir目录里appendonly.aof和集群信息文件node.conf(取决于你的配置),然后关闭重新启动redis server,再来创建就好
成功后的样子:
七 检查集群完整性
redis-trib.rb check 192.168.3.201:7003