广告
返回顶部
首页 > 资讯 > 数据库 >Redis Cluster 扩容
  • 337
分享到

Redis Cluster 扩容

2024-04-02 19:04:59 337人浏览 安东尼
摘要

在上一篇介绍了Redis Cluster的部署实战《Redis Cluster 集群部署实战》若因业务无法支撑现有访问或对以后容量进行扩容预案,如何扩容?可以提前做好快速扩容的脚本,进行一键扩容或是手工进行

在上一篇介绍了Redis Cluster的部署实战《Redis Cluster 集群部署实战》

若因业务无法支撑现有访问或对以后容量进行扩容预案,如何扩容?可以提前做好快速扩容的脚本,进行一键扩容或是手工进行扩容

这里是手工进行扩容

背景:

假设因业务快速增长需要,现上面的Redis集群已经无法满足支撑业务系统,先需要快速扩容Redis集群,这里假设只扩容一台Redis(两个实例)

扩容清单:

主机名

IP地址

Redis端口划分

备注

node174

172.20.20.174

16001,16002


说明:这里的各个主机的hosts就不配置了,若是自建DNS,则内部解析需要配置

Redis部署略

参见上面的链接,另外可以将打成镜像,修改IP地址即可

/opt/redis/bin/redis-server /opt/redis/conf/redis-16001.conf

/opt/redis/bin/redis-server /opt/redis/conf/redis-16002.conf

./bin/redis-cli  --cluster add-node 172.20.20.174:16001 172.20.20.171:16001

Warning: Using a passWord with '-a' or '-u' option on the command line interface may not be safe.

>>> Adding node 172.20.20.174:16001 to cluster 172.20.20.171:16001

>>> PerfORMing Cluster Check (using node 172.20.20.171:16001)

S: a9ab7a12884d505efcf066fcc3aae74c2b3f101d 172.20.20.171:16001

   slots: (0 slots) slave

   replicates 6dec89e63a48a9a9f393011a698a0bda21b70f1e

M: 6dec89e63a48a9a9f393011a698a0bda21b70f1e 172.20.20.172:16002

   slots:[0-5460] (5461 slots) master

   1 additional replica(s)

M: 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 172.20.20.173:16001

   slots:[10923-16383] (5461 slots) master

   1 additional replica(s)

M: 761348a0107f5b009cabc22c214e39578d0aa707 172.20.20.172:16001

   slots:[5461-10922] (5462 slots) master

   1 additional replica(s)

S: 81d1b25ae1ea85421bd4abb2be094c258026c505 172.20.20.171:16002

   slots: (0 slots) slave

   replicates 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2

S: 14e79155f78065e4518e00cd5bd057336b17e3a7 172.20.20.173:16002

   slots: (0 slots) slave

   replicates 761348a0107f5b009cabc22c214e39578d0aa707

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

>>> Send CLUSTER MEET to node 172.20.20.174:16001 to make it join the cluster.

[OK] New node added correctly.

登陆171--173中的任意一台查看

[root@node172 redis]# ./bin/redis-cli  -h 172.20.20.172 -p 16002

172.20.20.172:16002> auth zjkj

OK

172.20.20.172:16002> cluster nodes

761348a0107f5b009cabc22c214e39578d0aa707 172.20.20.172:16001@26001 master - 0 1564038119398 3 connected 5461-10922

ea77d7d10c27a1d99de00f4f81034d2d82a3c765 172.20.20.174:16001@26001 master - 0 1564038119000 0 connected

6dec89e63a48a9a9f393011a698a0bda21b70f1e 172.20.20.172:16002@26002 myself,master - 0 1564038120000 7 connected 0-5460

a9ab7a12884d505efcf066fcc3aae74c2b3f101d 172.20.20.171:16001@26001 slave 6dec89e63a48a9a9f393011a698a0bda21b70f1e 0 1564038121413 7 connected

04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 172.20.20.173:16001@26001 master - 0 1564038118396 5 connected 10923-16383

81d1b25ae1ea85421bd4abb2be094c258026c505 172.20.20.171:16002@26002 slave 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 0 1564038118000 5 connected

14e79155f78065e4518e00cd5bd057336b17e3a7 172.20.20.173:16002@26002 slave 761348a0107f5b009cabc22c214e39578d0aa707 0 1564038120405 6 connected

发现172.20.20.174是没有分配slot的,那如何给174主机分配slot呢?

在标注红色的有Master字样的机器上,登陆任意一台master,给174分配slot

[root@node174 redis]# ./bin/redis-cli  --cluster reshard 172.20.20.171:16001 -a zjkj

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

>>> Performing Cluster Check (using node 172.20.20.172:16002)

M: 6dec89e63a48a9a9f393011a698a0bda21b70f1e 172.20.20.172:16002

   slots:[0-5460] (5461 slots) master

   1 additional replica(s)

M: 761348a0107f5b009cabc22c214e39578d0aa707 172.20.20.172:16001

   slots:[5461-10922] (5462 slots) master

   1 additional replica(s)

M: ea77d7d10c27a1d99de00f4f81034d2d82a3c765 172.20.20.174:16001

   slots: (0 slots) master

S: a9ab7a12884d505efcf066fcc3aae74c2b3f101d 172.20.20.171:16001

   slots: (0 slots) slave

   replicates 6dec89e63a48a9a9f393011a698a0bda21b70f1e

M: 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 172.20.20.173:16001

   slots:[10923-16383] (5461 slots) master

   1 additional replica(s)

S: 81d1b25ae1ea85421bd4abb2be094c258026c505 172.20.20.171:16002

   slots: (0 slots) slave

   replicates 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2

S: 14e79155f78065e4518e00cd5bd057336b17e3a7 172.20.20.173:16002

   slots: (0 slots) slave

   replicates 761348a0107f5b009cabc22c214e39578d0aa707

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

How many slots do you want to move (from 1 to 16384)?

How many slots do you want to move (from 1 to 16384)? 4096

What is the receiving node ID? ea77d7d10c27a1d99de00f4f81034d2d82a3c765 #新添加的主库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

shell>./bin/redis-cli  -h 172.20.20.174 -p 16002 -a zjkj

172.20.20.174:16002> cluster replicate ea77d7d10c27a1d99de00f4f81034d2d82a3c765  #这里的Id是 #新库ID

172.20.20.174:16002> cluster nodes

761348a0107f5b009cabc22c214e39578d0aa707 172.20.20.172:16001@26001 master - 0 1564039099770 3 connected 6827-10922

a9ab7a12884d505efcf066fcc3aae74c2b3f101d 172.20.20.171:16001@26001 slave 6dec89e63a48a9a9f393011a698a0bda21b70f1e 0 1564039096756 7 connected

14e79155f78065e4518e00cd5bd057336b17e3a7 172.20.20.173:16002@26002 slave 761348a0107f5b009cabc22c214e39578d0aa707 0 1564039097762 3 connected

6dec89e63a48a9a9f393011a698a0bda21b70f1e 172.20.20.172:16002@26002 master - 0 1564039098764 7 connected 1365-5460

04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 172.20.20.173:16001@26001 master - 0 1564039097000 5 connected 12288-16383

81d1b25ae1ea85421bd4abb2be094c258026c505 172.20.20.171:16002@26002 slave 04d9c29ef2569b1fc8abd9594d64fca33e4ad4f2 0 1564039099000 5 connected

7d697261f0a4dd31f422e2fbe593D5cdd575fbb5 172.20.20.174:16002@26002 myself,slave ea77d7d10c27a1d99de00f4f81034d2d82a3c765 0 1564039094000 0 connected

ea77d7d10c27a1d99de00f4f81034d2d82a3c765 172.20.20.174:16001@26001 master - 0 1564039097000 8 connected 0-1364 5461-6826 10923-12287

至此扩容成功,看看各个实例的分配情况

Redis Cluster 扩容

这里有数据量不相等的情况,因为我在171的node上还在批量插入数据

当然扩容的反方案,之后就是缩容,一般对抗突发流量之后需要缩容,正常的数据量增长是不要缩容的,另外缩容也是有一定风险存在的


您可能感兴趣的文档:

--结束END--

本文标题: Redis Cluster 扩容

本文链接: https://www.lsjlt.com/news/42187.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis Cluster 扩容
    在上一篇介绍了Redis Cluster的部署实战《Redis Cluster 集群部署实战》若因业务无法支撑现有访问或对以后容量进行扩容预案,如何扩容?可以提前做好快速扩容的脚本,进行一键扩容或是手工进行...
    99+
    2022-10-18
  • Redis Cluster集群动态扩容的实现
    目录一、引言 二、Cluster集群增加操作1、动态增加Master主服务器节点 2、动态增加Slave从服务器节点 三、Cluster集群删除操作 1、动态删除Slave从服务器节...
    99+
    2022-11-12
  • 【Redis】redis-cluster到redis-cluster的快速复制
    现有个需求是redis-cluster到redis-cluster的快速迁移,并且迁移过后两套redis-cluster都要独立使用无依赖 方法一:使用前面redis迁移中的在线迁移工具 r...
    99+
    2022-10-18
  • redis如何扩容
    这篇文章主要介绍了redis如何扩容,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。方案一:首先想到的是,增加Redis服务器的数量,在客户端对存...
    99+
    2022-10-18
  • redis 6.0 redis-cluster
    伴随着Redis6.0的发布,作为最令人怦然心动的特性之一,Redis官方同时推出Redis集群的proxy了:redis-cluster-proxy,https://github.com/RedisLabs/redis-clus...
    99+
    2020-12-24
    redis 6.0 redis-cluster
  • redis 6.0下redis-cluster
    伴随着Redis6.0的发布,作为最令人怦然心动的特性之一,Redis官方同时推出Redis集群的proxy了:redis-cluster-proxy,https://github.com/RedisLabs/redis-clus...
    99+
    2016-07-16
    redis 6.0下redis-cluster
  • redis是怎么扩容的
    Redis的扩容可以通过以下两种方式进行:1. 垂直扩容(Vertical Scaling):通过升级硬件资源(例如,增加内存容量)...
    99+
    2023-09-11
    redis
  • Redis集群(Cluster)
    Redis集群 集群解决的问题代理主机和无中心化集群Redis集群的特点Redis集群环境搭建slots(插槽)在集群中录入值查询集群中的值故障恢复Redis集群的优缺点 集群解决的问...
    99+
    2023-08-31
    redis 数据库 服务器
  • 浅析Redis Sentinel 与 Redis Cluster
    目录一、前言二、Redis Sentinel 及 Redis Cluster 简介1、Redis Sentinel1.1、Redis Sentinel 集群模式的 “仲裁会”2、Re...
    99+
    2022-11-12
  • redis实现扩容的方法
    小编给大家分享一下redis实现扩容的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!扩容:1.集群,使用代理,达到集群的目的...
    99+
    2022-10-18
  • redis数据库如何扩容
    redis数据库实现扩容的方法。1.利用集群,使用代理,达到集群的目的。2.主从同步,读写分离。redis数据库实现扩容的方法。利用集群,使用代理,达到集群的目的。主从同步,读写分离。例如:Redis的字典中哈希表的rehash操作,代码示...
    99+
    2022-10-14
  • 什么是Redis Cluster
    本篇内容介绍了“什么是Redis Cluster”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!=(一)什么...
    99+
    2022-10-18
  • redis cluster (3) 配置
    一、redis 持久化说明1) 手工持久化   SAVE(同步回写)和 BGSAVE(异步回写) 两个命令都会调用 rdbSave 函数,它们都实现RDB持久化,但它们调用的方式各有不同:  SAVE 直接调用 rdbSave ,阻塞 R...
    99+
    2023-01-31
    redis cluster
  • redis 3.0 cluster 集群
    周氏一族,整理技术文档,给下一代留点教程......redis 3.0 cluster 安装篇,请看 http://zhoushouby.blog.51cto.com/9150272/1560400 本篇,是在 "redis 3.0 clu...
    99+
    2023-01-31
    集群 redis cluster
  • Redis集群如何水平扩容
    Redis集群水平扩容方法:1.加入新的master。 2.reshared数据,slot从一些master移动到新的master,达到扩容减轻其他主节点的压力。Redis集群水平扩容的示例:加入新的master:mkdir -p /var...
    99+
    2022-10-15
  • CentOS 7使用Redis Cluster
    本文更新于2021-11-03,使用Redis 4.0.8,操作系统为CentOS 7.5。 CentOS 7下直接运行redis-trib.rb可能出现如下提示,原因是没有安装Ruby: /usr/bin/env: ruby: N...
    99+
    2017-07-30
    CentOS 7使用Redis Cluster
  • Redis Cluster--运维管理
    上一篇博客我们讲了如何安装配置Redis Cluster,详情参考:Redis Cluster--安装配置,今天我们来学习一下Redis Cluster的日常运维操作Cluster常用命令cluster&n...
    99+
    2022-10-18
  • Redis Cluster在线迁移
    由于之前的redis cluster物理硬件性能不足。决定升级到更好的服务器上。考虑到redis是核心生产数据库,决定在线迁移,迁移过程,不中断服务。下面是测试环境的完成迁移步骤:1. 原环境(测试环境,没...
    99+
    2022-10-18
  • Redis Cluster--安装配置
    背景本篇主要讲Redis Cluster的安装,让我们先用起来,感受一下到底是怎么回事,后面再继续学习有关如何Cluster如何failover,添加节点,删除节点,迁移slots等功能。Redis Clu...
    99+
    2022-10-18
  • 解析Redis Cluster原理
    目录一、前言二、为什么需要RedisCluster三、RedisCluster是什么四、节点负载均衡五、什么是一致性哈希六、虚拟节点机制七、RedisCluster采用的什么算法八、...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作