redis集群搭建

redis cluster 模式 中包括至少3个主节点,每个主节点下有一个或多个从节点。redis cluster 将数据分为16384个hash槽,键值hash取模后对应到其中的hash槽。每个主节点管理其中一部分hash槽,所以每个主节点只有全量数据中的一部分数据。所以相较于哨兵模式,集群模式拥有更大的存储容量,并且可以通过添加节点来进行动态的扩容。

redis cluster 集群搭建

环境准备

  1. CentOS 7.5
  2. redis 4.0.10

搭建步骤

1.安装redis

# 解压安装包
tar -xvf redis-4.0.10.tar.gz

cd redis-4.0.10

# 编译 需要安装gcc
make

#安装 --prefix 指定路径
make install --prefix /opt/redis

2.编辑配置文件

集群最少需要3个主节点,每个主节点需要一个从节点,所以需要启动6个redis服务

# 进入安装后的目录
cd /opt/redis/bin

# 创建6个文件夹
mkdir 6379 6380 6381 6382 6383 6384

修改redis.conf

# 运行端口
port 6379

# 修改为后台运行
daemonize yes

# 修改默认pidfile路径,避免多个实例相同  
pidfile /var/run/redis_6379.pid

# 集群相关配置
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

复制6份,移动到对应的文件夹下,修改为对应的端口  

3.启动redis 服务

使用 redis-server 启动6个redis 实例

cd /6379

./../redis-server redis.config    //启动

全部启动后

4. 创建集群

redis 5.0 版本之前使用 redis-trib 创建集群,需要先安装 rubby

yum install ruby rubygems -y

安装ruby后,安装redis-gem,下载redis-gem 安装包,地址 https://rubygems.org/downloads/redis-3.0.0.gem 使用gem 安装

gem install -l redis-3.0.0.gem

安装完成后  将redis安装包中src里的redis-trib.rb 复制到redis实际安装目录下

# 复制
cd /opt/redis-4.0.10/src/redis-trib.rb /opt/redis/bin/

使用create创建集群, --replicas 指定每个主节点的从节点数量

./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

创建成功后,查看集群信息

以集群方式连接到服务器

数据存到了6380这台服务器,其他节点不会保存该条数据

集群扩容

为集群添加节点 按之前的步骤新启动两个redis服务6385和6386

将启动的服务添加到现有的集群

./redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379

6385 新增结点  6379 现集群中的结点

添加成功后检查集群

./redis-trib.rb check 127.0.0.1:6379

新增的作为了主节点,继续添加6386 作为6385的从节点 --slave 作为从节点 --master-id 主节点id

./redis-trib.rb add-node --slave --master-id a8e845b6f72a946ae77575149607209f53297894 127.0.0.1:6386 127.0.0.1:6379

添加成功,继续分配hash槽,否则不会存储数据

./redis-trib.rb reshard 127.0.0.1:6385

迁移后检查

节点添加完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值