Redis(三) 集群搭建 day13

Redis 集群搭建

一、概述

Redis 集群架构:
    所有节点之间相互连通,内部使用二进制协议优化传输速度和宽带。
    Redis集群中内置16384个哈希槽,每个key写入的时候,都会由crc16算法运算后用16384求余,将这个key分配到相应的hash槽中,这16384个槽又被大致平均的分配到各个节点上。

集群不可用情况:
1.集合汇总超过半数的主节点挂掉。
2.任意主节点挂掉,并且没有附节点。

二、集群搭建(一台虚拟机上多个服务端口开启)

单机安装成功的基础上

1.安装ruby环境

yum install ruby
yum install rubygems

2.安装ruby和redis接口程序

拷贝redis-3.0.0.gem至/usr/local下
gem install /usr/local/redis-3.0.0.gem

3.开始搭建

创建Redis-cluster,将原来单机Redis 的bin目录拷贝到其下面命名为Redis01。
修改配置文件(端口号以及 将cluster-enable 前面#删掉 解开注释 开启)
删除持久化文件
拷贝上面的Redis01,复制5份(因为是设置6个节点3主3附),修改各自的端口号。
开启所有服务器(写一个可执行文件 startall.sh 增加执行权限chmod +x startall.sh)
将解压目录下src中的 redis-trib.rb 复制到 cluster 中
执行./redis-trib.rb create --replicas 1 IP(地址):7001 IP(地址):7002 IP(地址):7003 IP(地址):7004 IP(地址):7005  IP(地址):7006

运行后显示如下信息
Using 3 masters:
IP(地址):7001
IP(地址):7002
IP(地址):7003
Adding replica IP(地址):7004 to IP(地址):7001
Adding replica IP(地址):7005 to IP(地址):7002
Adding replica IP(地址):7006 to IP(地址):7003
M: 9db019c6ba5b87689c79131bab7470ca517b5e09 IP(地址):7001
slots:0-5460 (5461 slots) master
M: 1b21e56918c8fb9a393d1abaf1952a5c878c2fc8 IP(地址):7002
slots:5461-10922 (5462 slots) master
M: 852ee0229723e79c0ca1bff80c6491182328f64e IP(地址):7003
slots:10923-16383 (5461 slots) master
S: b04e23c19687bfb8cf123d2daff73482c55373d4 IP(地址):7004
replicates 9db019c6ba5b87689c79131bab7470ca517b5e09
S: c781d7b0511fe741275dcc5b92a0c785d2f4fb1f IP(地址):7005
replicates 1b21e56918c8fb9a393d1abaf1952a5c878c2fc8
S: 43521f3b90fa9179767a87eca21e7609a7db8573 IP(地址):7006
replicates 852ee0229723e79c0ca1bff80c6491182328f64e

提示是否确定
Can I set the above configuration? (type 'yes' to accept): yes  输入yes

集群搭建好了
进入其中任意一个实例比如Redis01下 用客户端连接集群
./redis-cli -h (ip地址) -p 7001 -c   | -c 表示要连接集群


解释
选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点
M 主节点
S 附节点
 slots:0-5460 (5461 slots) master 将0-5460 槽分给字节点1

 出现错误,显示槽没有被全部分配,检查主节点一发现0个槽被分配。。。 找了半天解决方法发现是自己应该输入 yes 结果却 输入的 y。。难受

查找错误时候用到redis-trib.rb 功能

修复:./redis-trib.rb fix (ip地址):7001
检查:./redis-trib.rb check (ip地址):7001
所有功能·:
redis-trib.rb具有以下功能:
1、create:创建集群
2、check:检查集群
3、info:查看集群信息
4、fix:修复集群
5、reshard:在线迁移slot
6、rebalance:平衡集群节点slot数量
7、add-node:将新节点加入集群
8、del-node:从集群中删除节点
9、set-timeout:设置集群节点间心跳连接的超时时间
10、call:在集群全部节点上执行命令
11、import:将外部redis数据导入集群

 iptables -I INPUT -p tcp --dport 8889 -j ACCEPT 打开防火墙
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值