Redis集群之官方集群

一 环境准备

操作系统: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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫言静好、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值