`
jaesonchen
  • 浏览: 312951 次
  • 来自: ...
社区版块
存档分类
最新评论

高性能网站架构之缓存篇—Redis集群增删节点

 
阅读更多

Redis集群添加节点

       首先我们要新建立一个节点,将redis01 复制一份改为redis07,然后修改端口号也改为7007 ,然后我们执行[root@localhost redis07]# ./redis-server redis.conf 启动以后,然后进行查看,发现有一个端口号为7007的redis实例已经启动了!我们怎么把这个redis 实例添加到集群中呢。

       在将7007 端口号的redis实例添加到集群之前,一定要确保这个redis实例没有存储过数据,也不能持久化的数据文件,否则在添加的时候会报错的!我们执行命令  ./redis-trib add-node127.0.0.1:7007 to cluster 127.0.0.1:7001 就可以将端口号为7007的实例添加到redis-cluster中。如下如所示。

        

       我们执行在任意一个客户端下执行 cluster nodes 命令,可以看到7007 已经作为主节点添加到我们的集群中了,但是可以看到他没有分配哈希槽,没有分配哈希槽的话表示就没有存储数据的能力,所以我们需要将其他节点上的哈希槽分配到这个节点上。

   

       下边我们看一下如何分配哈希槽。我们随便进入一个客户端,然后我们执行 ./redis-trib.rb reshard 192.168.20.140:7001, 就可以看到如下图所示提示,问我们需要移动多少个哈希槽,我们在这里移动1000个。

        

        完以后,又会问我们需要覆盖的节点id是什么,这个id就是我们新创建的节点id。然后让我们输入源节点,如果这里我们输入all的话,他会随机的从所有的节点中抽取1000个作为新节点的哈希槽。

       

        我们输入all以后,会出下下图所示东西,表示hash槽正在移动。

        

        移动完以后,我们进入客户端,执行cluster nodes 命令,查看集群节点的状态,我们会看到原来没有哈希槽的7007节点,分配到了1000个哈希槽,而且是不连续的。说明是从原来的三个节点中抽取的。

        

        这样我们一个新的节点就添加好了, 但是我们发现总共是7个节点,其中的六个互为住备,但有一个是有主,没有备,所以我们需要在为该节点添加一个备份节点。我们在创建一个实例,端口号为7008,启动以后我们只命令./redis-trib.rb add-node --slave127.0.0.1:7008  127.0.0.1:7007 ,第一个实例127.0.0.1:7008为备份节点,第二个实例127.0.0.1:7007为主节点。然后我们在执行,cluster nodes 命令,就会发现新添加的节点已经作为7007 备份节点开始工作了!

       

  

Redis 集群删除节点

        删除节点也分两种,一种是主节点,一种是从节点。在从节点中,我们没有分配哈希槽,所以删除很简单,我们直接执行./redis-trib.rb del-node 127.0.0.1:700865ee465423c925326a5137668541151b4c37d2d9 有两个参数ip:port  和节点的id。 我们就可以将从节点从集群中删除了。

        

        而在删除主节点的时候,因为在主节点中存放着数据,所以我们在删除之前,要把这些数据迁移走,并且把该节点上的哈希槽分配到其他主节点上。

       我们执行./redis-trib.rb reshard 127.0.0.1:7007,问我们有多少个哈希槽要移走,因为我们这个节点上有1000 个所以我们这里输入1000,如下如所示。

       

        这样期间会询问我们是否要从新分配,我们输入yes。然后就看到7007上的所有节点都被移动到了7001.这样我们就操作完了。然后再执行./redis-trib.rb del-node127.0.0.1:7007 61f786c40bcc170006a440abd7dc773e6dd15a19 ,就会看到7007 端口的实例也被从集群中移除了。

       

 

        我们进入客户端,看一下集群节点的情况。会看到7007 节点和7008 节点就都被我们移除集群了!   

分享到:
评论

相关推荐

    springcloud部署redis集群

    在SpringCloud框架中,部署Redis集群是实现高可用、数据持久化和分布式缓存的关键步骤。Redis是一款高性能的键值数据库,广泛应用于缓存、消息队列等多种场景。SpringCloud通过集成Spring Data Redis模块,使得在...

    03-VIP-Redis缓存高可用集群(预习)1

    【Redis缓存高可用集群】是为了解决单机Redis在面临高并发、大数据量时可能出现的性能瓶颈和单点故障问题。本文将探讨Redis的两种集群方案:哨兵模式和高可用集群模式,以及如何搭建Redis高可用集群。 1. **哨兵...

    springboot整合redis集群零配置

    本篇文章将深入探讨如何在Spring Boot中实现对Redis集群的零配置整合,并介绍使用AOP实现的自定义缓存注解。 首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-...

    搭建redis缓存高可用集群.md

    Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个 Redis 节点之间移动数据, 并且在高负载的情况下, 这些命令将降低Redis集群的性能, 并导致不可预测的行为。 Redis 集群通过...

    docker-compose redis主从哨兵 redis多节点高可用 redis集群高可用

    3. **Redis集群高可用**:Redis集群通过分片(Sharding)和槽区(Slot)分配,将数据分散到多个节点上,这样即使部分节点故障,其他节点仍能提供服务。Docker Compose配置中,我们需要定义多个集群节点,每个节点都...

    阿里云公网redis集群搭建以及java访问redis集群

    阿里云公网Redis集群搭建及Java访问教程 在云计算日益普及的今天,阿里云提供了便捷的公共服务,如Redis缓存服务,帮助企业或个人快速构建高效、可靠的分布式应用。本教程将详细讲解如何在阿里云上搭建公网Redis...

    5、分布式缓存Redis集群安装

    分布式缓存Redis集群安装 本章节主要介绍了在CentOS 7系统下安装和配置Redis集群的步骤,包括单机安装Redis、Redis主从集群和Redis分片集群等内容。 单机安装Redis 在安装Redis之前,需要安装必要的依赖项,包括...

    spring + redis集群

    总结,本篇文章详细介绍了如何使用Spring Data Redis搭建Redis集群,以及如何在Spring应用中操作Redis集群,存储和检索对象。`RedisClusterDemo`项目提供了一个具体的实践示例,适合初学者理解和学习。

    Redis集群搭建工具及教程

    Redis是一种高性能的键值对数据存储系统,常用于缓存、数据库和消息中间件等场景。在本资源包中,提供了搭建Redis集群所需的各种工具和教程,帮助你在Windows环境下进行操作。 首先,让我们来了解Redis集群的基础...

    redis集群环境搭建(含基本增删改查和文档说明)

    Redis 是一款高性能的键值数据库,广泛应用于缓存、消息队列等领域。为了实现高可用性和数据冗余,Redis 提供了集群(Cluster)功能。本指南将详细阐述如何搭建 Redis 集群环境,并介绍在 Java 应用中对集群进行基本...

    redis本地缓存与redis缓存

    Redis是一种高性能的键值数据存储系统,常被用于构建分布式缓存、数据库和消息队列等应用场景。在“redis本地缓存与redis缓存”的主题中,我们将深入探讨这两种缓存方式及其各自的特点。 首先,我们要理解什么是...

    docker 部署Redis集群节点.pdf

    以下是关于使用Docker部署Redis集群节点的一些资源: - [Redis Docker官方镜像文档](https://hub.docker.com/_/redis):官方文档,包含了Redis Docker镜像的使用说明、示例和一些技术细节等。 - [Redis集群草稿设计...

    redis集群一键自动部署脚本.rar

    Redis 是一个高性能的键值数据库,常用于缓存和数据持久化。在大规模应用中,为了提高可用性和数据冗余,通常会采用集群部署。"redis集群一键自动部署脚本.rar" 提供了一种便捷的方式来在 CentOS 7.X 操作系统上搭建...

    redis集群批处理一键搭建

    Redis集群批处理一键搭建是指通过一个简单的批处理脚本来快速构建和配置四个节点的Redis集群。这种方式极大地简化了安装和部署过程,使得在64位操作系统上启用Redis集群变得更加便捷。Redis是一个开源的、高性能的...

    redis集群windows启动脚本

    Redis是一款高性能的键值数据库,常用于数据缓存、消息队列等场景。在Windows环境下,设置和管理Redis集群可能相对复杂,但通过编写启动脚本可以实现一键启动,简化操作流程。以下将详细介绍如何创建并使用“redis...

    redis集群redis.rar

    Redis是一种高性能的键值数据库,常用于数据缓存、消息队列和数据库持久化等多个场景。这个名为"redis集群redis.rar"的压缩包文件显然包含了关于Redis集群搭建和使用的资源,特别是针对64位环境的Windows和Linux系统...

    springboot集成redis集群,redis安装包配置

    在本文中,我们将深入探讨如何在SpringBoot应用中集成Redis集群以及如何配置Redis服务器。首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。...

    Redis高性能缓存

    集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器...

    linux下安装redis以及搭建redis集群

    Redis是一种高性能的键值存储系统,常用于缓存、消息队列等场景,而Redis集群则能提供高可用性和数据冗余,确保服务的稳定运行。 首先,我们来看如何在Linux上安装Redis。通常,我们可以使用包管理器如`apt`...

    Redis集群.docx

    Redis本身是一个高性能的键值存储系统,常用于缓存、消息队列等场景。在Java开发中,Redis集群是常用的中间件技术。 ### 安装Redis 3.0 安装Redis的步骤包括下载源码、编译和安装。在Linux环境中,可以通过`yum`...

Global site tag (gtag.js) - Google Analytics