Redis Cluster介绍与搭建

Redis Cluster介绍

Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构达到负载均衡的目的。更多信息参考官网http://www.redis.cn/

查看下端口范围,(这个非必要,下边实验用到的端口不再系统内置使用端口范围内1-1024)

[root@host5 ~]# sysctl -a |grep range 
net.ipv4.ip_local_port_range = 32768    61000
net.ipv4.ping_group_range = 1   0

修改下:

sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -p

这里写图片描述

1.实验前确保已经安装了redis服务

1.1新建rediscluster目录
cd /usr/local/ 
mkdir rediscluster
cd rediscluster/
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005
mkdir 7006

这里写图片描述

1.2进入到每个子目录内新建文件redis.conf

这里以7001为例

cd /usr/local/rediscluster/7001
vim redis.conf
    port 7001  监听的端口
    cluster-enabled yes  
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes  日志的方式
    daemonize  yes   打入后台执行

这里写图片描述
这里写图片描述
其他操作同此,每个子目录内的配置文件port不同
这里写图片描述

1.3进入到每个子目录内执行下边的命令
redis-server redis.conf 
ps ax   ##查看进程

这里写图片描述
这里写图片描述

其他节点操作同此
这里写图片描述
这里写图片描述

2.进入到安装redis时解压的目录中的src中

cd /root/redis-4.0.8/src
cp redis-trib.rb /usr/local/bin/   ###要使用redis-trib.rb这个命令

3.安装以下包

yum install 
ruby-2.2.3-1.el6.x86_64.rpm
rubygems-1.3.7-5.el6.noarch.rpm 
libyaml-0.1.3-4.el6_6.x86_64.rpm 

这里写图片描述

4.下载redis-4.0.1.gem,gem是一种文件组织的包,一般的ruby的很多插件都有由这种各种的包提供

[root@host5 ~]# gem install --local redis-4.0.1.gem  ##redis-4.0.1.gem在我的家目录中,注意文件路径问题


gem list  

这里写图片描述

5.创建集群

redis-trib.rb  create --replicas 1 127.0.0.1:7001  127.0.0.1:7002  127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
###以下内容表示成功

这里写图片描述
这里写图片描述
这里写图片描述

6,登录进去,主从都可以写,只是从写的数据会自动迁移

 redis-cli -c -p 7001
 info   ##产看当前redis集群节点信息
 cluster info  ##查看集群信息
 cluster nodes  ##查看节点
  redis-trib.rb info 127.0.0.1:7001  查看指定节点信息

7001节点是matser,slave为7005,slave在线
这里写图片描述
至此rediscluster搭建完成

二.node的增添与删除

增加slave节点(法1)

同一开始一样,新建7007,编写配置文件,启动

cd /usr/local/rediscluster/
mkdir 7007
cd 7007
vim redis
    port 7007
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    daemonize yes

这里写图片描述

redis-server redis.conf 

这里写图片描述

redis-trib.rb check 127.0.0.1:7001 发现目前三从三主
这里写图片描述

redis-trib.rb add-node --slave 127.0.0.1:7007 127.0.0.1:7001
###增加slave节点7007主为7001

这里写图片描述

redis-trib.rb check 127.0.0.1:7007  ###查看7007的状态,注意id

这里写图片描述

增加从节点(法2)

新建7008节点
这里写图片描述

redis-trib.rb  add-node --slave --master-id e7c8aa9bb2f760f8f32ecb4fd196e841927a47ba 127.0.0.1:7008  127.0.0.1:7001
         ##--slave,表示添加的是从节点
     ##--master-id 49d30a1b09af1e055aa9c5bab6a7c1e6d8e7d198 主节点的node id, 7001主节点
      ##127.0.0.1:7008,新节点
      ##127.0.0.1:7001 集群任一个旧节点,通信用

这里写图片描述

增加主节点
redis-trib.rb add-node 127.0.0.1:7009 127.0.0.1:7002
##127.0.0.1:7009 增加的主节点
##127.0.0.1:7002  通信用

这里写图片描述
这里写图片描述

7009主节点没有hash槽,重新分配
redis-trib.rb reshard 127.0.0.1:7009
##回车后,输入分配的大小(1000),7009的id,选择all,yes,yes

这里写图片描述
这里写图片描述
这里写图片描述

redis-trib.rb check 127.0.0.1:7009
##查看7009节点信息

这里写图片描述

删除节点
 redis-trib.rb del-node 127.0.0.1:7008 5ec7c8c3c42087fe52306632acf9d6b7fd399233   ##要删除的节点id

这里写图片描述
这里写图片描述
没7008节点了
这里写图片描述

如果主节点有从节点,删除该主节点后从节点转移到其他主节点

猜你喜欢

转载自blog.csdn.net/xixlxl/article/details/80143471