Redis 集群部署

一、环境

192.168.0.31
每台服务器1主1从,共3主3从
相关安装包存储路径:/usr/local/
3主3从

二、部署

2.1 下载安装Redis

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar xzf redis-5.0.5.tar.gz
cd redis-5.0.5
make

2.2 配置

选择一个目录在该目录(/root/redis-cluster)创建6个文件夹
命令:

mkdir 7001,mkdir 7002,mkdir 7003,mkdir 7004,mkdir 7005,mkdir 7006

然后把redis.conf这个文件拷贝到这6个目录中
命令:

cp /usr/local/redis-5.0.0/redis.conf /root/redis-cluster/7001/

2.3 修改配置文件

命令:

vim 7001/redis.conf

修改内容:

port 7001	#修改为自己对应的端口号
logfile "/root/redis-cluster/redis.log"	#事先创建好目录
dir/root/redis-cluster/7001/	#事先创建好,数据库写入会在这个目录。rdb,aof文件也会在这个目录
cluster-enabled yes		#是否开启集群.
cluster-config-file nodes_7001.conf	#根据目录不同区分.#集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息。这个文件并不需要手动配置,这个配置文件有Redis生成并更新,每个Redis集群节点需要一个单独的配置文件,请确保与实例运行的系统中配置文件名称不冲突
cluster-node-timeout 5000	#节点互连超时的阀值。集群节点超时毫秒数
appendonly yes	#默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。

protected-mode no	#保护模式关闭
#bind 127.0.0.1	#注释掉绑定ip
pidfile /var/run/redis_7001.pid

2.4 启动

分别启动不同的节点

/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7001/redis.conf
/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7002/redis.conf
/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7003/redis.conf
/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7004/redis.conf
/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7005/redis.conf
/usr/local/redis-5.0.0/src/redis-server /root/redis-cluster/7006/redis.conf

启动成功图:ps -ef|grep redis
在这里插入图片描述

2.5 创建集群

执行命令:

/usr/local/redis-5.0.0/src/redis-cli --cluster create 192.168.0.31:7001 192.168.0.31:7002 192.168.0.31:7003 192.168.0.31:7004 192.168.0.31:7005 192.168.0.31:7006 --cluster-replicas 1
/data/redis-5.0.8/src/redis-cli --cluster create 10.1.162.59:7001 10.1.162.59:7002 10.1.162.59:7003 10.1.162.59:7004 10.1.162.59:7005 10.1.162.59:7006 --cluster-replicas 1

cluster-replicas 1: 集群中1个主节点对应的从节点数
在这里插入图片描述
是否检查成功:

./redis-cli -c -p 7001 

这要注意有输入-c(表示集群模式)
然后执行cluster nodes显示如图则表示集群部署成功
在这里插入图片描述

三、高可用水平扩展

增加redis实例 执行mkdir 7007 7008拷贝相应的redis.conf配置文件,然后进行相应的修改配置 然后启动。
执行集群节点并没有返现我们的节点数据,这个时候需要把启动的节点数据增加到集群中
在这里插入图片描述
在这里插入图片描述

3.1 增加主节点

执行命令:./redis-cli --cluster add-node 192.168.0.31:7007 192.168.0.31:7001

在这里插入图片描述
查看集群状态,可发现节点是7个,但是7007节点,没有hash槽分配;因为16384个槽都应经分配给之前3个master了;

3.2 重新分配哈希槽

使用redis-cli命令为7007分配hash槽,找到集群中的任意一个主节点(7001),对其进行重新分片工作
命令 : ./redis-cli --cluster reshard 192.168.0.31:7001

两种方式:
一种是all,以将所有节点用作散列槽的源节点,
一种是done,这种是你自己选择从哪个节点上拿出来节点分给8007
备注:all是随机的,比如说我们要分出1000个,则3个主节点分别拿出333个,333个,334个节点分别7007,这里我们选择done,从7001拿1000个给7007
在这里插入图片描述

3.3 增加从节点

命令: ./redis-cli --cluster add-node 192.168.0.31:7008 192.168.0.31.7001
在这里插入图片描述
目前增加还是主节点,并且没有hash槽。
变成从节点:
命令:CLUSTER REPLICATE 095faf5f43085d2b8034fcb417daddbd0f5d9c2c
(这个节点依赖哪个主节点)
在这里插入图片描述

3.4 其他命令

./redis-cli --cluster del-node 192.168.0.31:7008 230e6e5b45e310fffafd2809f0bd5c869889a015 
#删除从节点
./redis-cli --cluster reshard 192.168.0.31:7007
#删除主节点
./redis-cli -p 7001 shutdown 
# 关闭节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值