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节点了

如果主节点有从节点,删除该主节点后从节点转移到其他主节点
本文详细介绍了如何搭建RedisCluster,并提供了增添与删除节点的具体步骤。适用于解决Redis单机瓶颈问题,实现分布式部署。

1108

被折叠的 条评论
为什么被折叠?



