Redis Cluster是Redis的分布式解决方案,在Redis 3.0版本正式推出的,有效解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构达到负载均衡的目的。
需要先安装好redis
修改端口
[root@server03 html]# 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
在 /usr/local 下创建rediscluster
cd /usr/local/
mkdir rediscluster
进入目录依次创建 6个目录
mkdir 7001 mkdir 7002 mkdir 7003 mkdir 7004 mkdir 7005 mkdir 7006
在所有目录中创建 redis.conf
vim redis.conf
port 7001 其他只更改端口
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes 日志方式
daemonize yes 打入后台
在执行
redis-server redis.conf
查看以下 ps -aux
安装
yum install ruby-2.1.2-2.el6.x86_64.rpm rubygems-2.0.14.1-33.el7_4.noarch.rpm libyaml-0.1.3-4.el6_6.x86_64.rpm -y
安装gem
gem install --local redis-4.0.1.gem
安装完成后创建集群
因为需要redis-trib.rb 命令
cd redis-3.2.9/src/
cp redis-trib.rb /usr/local/bin/
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
搭建就完成了
添加节点
添加主节点
添加主节点
redis-trib.rb add-node 172.25.254.3:7007 172.25.254.3:7001 前面ip为新节点 后面ip为旧节点可以是任意一个
添加从节点
redis-trib.rb add-node --slave--master-id 2764e7bb5a280a5e14d085fb4d002e89cae53f08 172.25.254.3:7008 172.25.254.3:7001
-slave 表示从节点
-master-id 主节点id
7008 新节点 7001 任意一个旧节点
删除节点
redis-trib.rb del-node 172.25.254.3:7008 '2764e7bb5a280a5e14d085fb4d002e89cae53f08'
redishash 分配
redis-trib.rb reshard 172.25.254.8:7007 //下面是主要过程
How many slots do you want to move (from 1 to 16384)? 1000 //设置slot数1000
What is the receiving node ID? 2764e7bb5a280a5e14d085fb4d002e89cae53f08//新节点node id
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' once you entered all the source nodes IDs.
Source node #1:all //表示全部节点重新洗牌
Do you want to proceed with the proposed reshard plan (yes/no)? yes //确认重新分