Redis3.x集群部署

一、集群部署

要让集群正常工作至少需要 3 个主节点,在这里我们要创建 6 个 redis 节点,其中三个为主节点,三个为从节点,对应的 redis 节点的 ip 和端口对应关系如下

192.168.110.138:6001

192.168.110.138:6002

192.168.110.138:6003

192.168.110.138:6004

192.168.110.138:6005

192.168.110.138:6006

1、下载 redis 。官网下载 3.0.0 版本,之前 2. x的版本不支持集群模式

yum install gcc-c++ wget vim

wget http://download.redis.io/releases/redis-3.0.0.tar.gz

2、解压并安装

tar -zxvf redis-3.0.0.tar.gz

mv redis-3.0.0 /usr/local/src

cd /usr/local/src/

mkdir redis

cd /usr/local/src/redis-3.0.0/

./configure --prefix=/usr/local/src/redis

make && make install

3、创建集群所需要的目录

mkdir -p /usr/local/src/cluster

cd /usr/local/src/cluster

mkdir 6001

mkdir 6002

mkdir 6003

mkdir 6004

mkdir 6005

mkdir 6006

4、修改配置文件redis.conf

cp /usr/local/src/redis/redis.conf /usr/local/src/cluster

cd /usr/local/src/cluster

vim redis.conf

修改配置文件中的下面选项

port 6001

daemonize yes

cluster-enabled yes ##去掉命令前注释

cluster-config-file nodes.conf ##去掉命令前注释

cluster-node-timeout 5000 ##去掉命令前注释

appendonly yes

修改 完 redis.conf 配 置 文 件 中 的 这 些 配置 项 之 后 把这 个 配 置文 件 分别 拷 贝 到6001/6002/6003/6004/6005/6006目录下面

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6001

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6002

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6003

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6004

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6005

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6006

注意:拷贝完成之后要修改 6001/6002/6003/6004/6005/6006 目录下面 redis.conf 文件中的 port参数,分别改为对应的文件夹的名称

5、分别启动这6个redis实例

cd /usr/local/src/cluster/6001

redis-server redis.conf

cd /usr/local/src/cluster/6002

redis-server redis.conf

cd /usr/local/src/cluster/6003

redis-server redis.conf

cd /usr/local/src/cluster/6004

redis-server redis.conf

cd /usr/local/src/cluster/6005

redis-server redis.conf

cd /usr/local/src/cluster/6006

redis-server redis.conf

启动之后使用命令查看 redis 的启动情况 ps -ef|grep redis

如下图显示则说明启动成功

Redis3.x集群部署_第1张图片

6、创建集群

6.1、安装ruby环境

yum install curl

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E37D2BAF1CF37B13E2069D6956105BD0E739499BDB

\curl -sSL https://get.rvm.io | bash -s stable

find / -name rvm.sh

source /etc/profile.d/rvm.sh

rvm requirements

rvm list known

yum install rubygems

gem sources –remove https://rubygems.org/

gem sources --add https://gems.ruby-china.com/

gem sources -l

*** CURRENT SOURCES ***
​
https://gems.ruby-china.com

gem install rails

sed -i -E 's!https?://cache.ruby-lang.org/pub/ruby!https://ruby.taobao.org/mirrors/ruby!' /usr/local/rvm/config/db

rvm install ruby-2.4.1

(There was an error while trying to resolve rubygems version for 'latest'.Halting the installation.可忽略此报错)

使用ruby -v可查看所装版本是否正确

rvm use 2.4.1 default

gem install redis

6.2、创建redis集群

cd /usr/local/src/redis/src

./redis-trib.rb create --replicas 1 192.168.110.138:6001 192.168.110.138:6002 192.168.110.138:6003 192.168.110.138:6004 192.168.110.138:6005 192.168.110.138:6006

Redis3.x集群部署_第2张图片

输入yes完成配置

Redis3.x集群部署_第3张图片

出现下图表示redis集群搭建成功^_^

Redis3.x集群部署_第4张图片

7、使用 redis-cli 命令进入集群环境

redis-cli -c -p 6001

127.0.0.1:6001>

二、集群添加节点

1、首先把需要添加的节点启动

cd/usr/local/src/cluster

mkdir 6007

cp /usr/local/src/cluster/redis.conf /usr/local/src/cluster/6007/

vim redis.conf

修改 redis.conf 中的 port 参数的值为 7006

redis-server redis.conf

2、执行以下命令,将这个新节点添加到集群中

cd /usr/local/src/redis/src

./redis-trib.rb add-node 192.168.110.138:6007 192.168.110.138:6001

Redis3.x集群部署_第5张图片

Redis3.x集群部署_第6张图片

3、执行命令 redis-cli -c -p 6001 cluster nodes,查看刚才新增的节点

Redis3.x集群部署_第7张图片

4、增加了新的节点之后,这个新的节点可以成为主节点或者是从节点

4.1、把这个节点变成主节点,使用 redis-trib 程序,将集群中的某些哈希槽移动到新节点里面,这个新节点就成为真正的主节点了。

执行下面的命令对集群中的哈希槽进行移动

cd /usr/local/src/redis/src

./redis-trib.rb reshard 192.168.110.138:6001

Redis3.x集群部署_第8张图片

系统会提示我们要移动多少哈希槽,这里移动 1000 个

Redis3.x集群部署_第9张图片

然后还需要指定把这些哈希槽转移到哪个节点上,输入我们刚才新增的节点的 ID,然后需要我们指定转移哪几个几点的哈希槽,输入 all 表示从所有的主节点中随机转移

Redis3.x集群部署_第10张图片

凑够 1000 个哈希槽,然后再输入 yes,redis 集群就开始分配哈希槽了

Redis3.x集群部署_第11张图片

至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态

redis-cli -c -p 6001 cluster nodes

Redis3.x集群部署_第12张图片

4.2、把这个节点变成从节点

前 面 我 们 已 经 把 这 个 新 节 点 添 加 到 集 群 中 了 , 现 在 我 们 要 让 新 节 点 成 为192.168.110.138:6002 的从节点,只需要执行下面的命令就可以了,命令后面的节点 ID 就是192.168.110.138:6002的节点 ID

redis-cli -c -p 6007 cluster replicate f14036d655baadec3645a9a3b41a3c6bb6f0a6b8

可执行redis-cli -c -p 6001 cluster nodes查看节点状态

Redis3.x集群部署_第13张图片

三、集群删除节点

1、如果删除的节点是主节点,这里我们删除 192.168.110.138:6007节点,这个节点有 1000 个哈希槽

首先要把节点中的哈希槽转移到其他节点中,执行下面的命令

cd /usr/local/src/redis/src

./redis-trib.rb reshard 192.168.110.138:6001

Redis3.x集群部署_第14张图片

系统会提示我们要移动多少哈希槽,这里移动 1000 个,因为 192.168.110.138:6007节点有1000 个哈希槽

然后系统提示我们输入要接收这些哈希槽的节点的 ID,这里使用 192.168.110.138:6002的节点 ID

然后要我们选择从那些节点中转出哈希槽,这里一定要输入 192.168.110.138:6007这个节点的 ID,最后输入 done 表示输入完毕

Redis3.x集群部署_第15张图片

然后输入yes

Redis3.x集群部署_第16张图片

待1000个哈希槽转出完毕,使用下面的命令把这个节点删除

cd /usr/local/src/redis/src

./redis-trib.rb del-node 192.168.110.138:6001 需要删除的节点 ID

Redis3.x集群部署_第17张图片

2、如果节点是从节点的,直接使用下面的命令删除即可

cd /usr/local/src/redis/src

./redis-trib.rb del-node 192.168.110.138:6001 需要删除的节点 ID

Redis3.x集群部署_第18张图片

 

你可能感兴趣的:(Redis3.x集群部署)