系列十五、搭建redis集群

news2024/12/23 22:06:03

一、概述

        上篇文章介绍了redis集群的相关知识,本章实战演示redis的集群环境的详细搭建步骤。如果帮助到了你,请点赞 + 收藏 + 关注!有疑问的话也可以评论区交流。

二、搭建步骤

2.1、预备知识

        判断一个集群中的节点是否可用,是集群中的所有主节点选举的结果,如果半数以上的节点认为当前节点挂了,那么当前节点就是挂了,所以搭建redis集群时,在满足系统吞吐量的前提下,建议节点数最好为奇数,那么搭建集群将至少需要3个主节点+3个从节点,即至少需要6个节点,考虑到本机笔记本的性能问题,我这里就在一台机器上使用6个节点进行搭建演示。

        注意事项:现在是搭建集群,需要把当前已经启动的所有redis服务关闭掉!

2.2、前置准备(安装ruby和redis集群依赖)

# 联网下载ruby依赖
yum install -y ruby rubygems

# 安装redis-3.2.1.gem
gem install redis-3.2.1.gem

# 我分享的redis-3.2.1.gem
链接:https://pan.baidu.com/s/1NrnB3v5IDr_h5JzumjA0Jw?pwd=yyds 
提取码:yyds 

2.3、详细步骤

2.3.1、创建文件夹

在 /myconf/redis/ 目录创建7个文件夹,分别为 7001、7002、7003、7004、7005、7006、7007

mkdir 7001 7002 7003 7004 7005 7006 7007

2.3.2、拷贝配置文件

每个目录复制一份配置文件

cp redis6379_standAlone_aof.conf 7001/redis.conf
cp redis6379_standAlone_aof.conf 7002/redis.conf
cp redis6379_standAlone_aof.conf 7003/redis.conf
cp redis6379_standAlone_aof.conf 7004/redis.conf
cp redis6379_standAlone_aof.conf 7005/redis.conf
cp redis6379_standAlone_aof.conf 7006/redis.conf
cp redis6379_standAlone_aof.conf 7007/redis.conf

2.3.3、修改配置文件的信息

修改不同目录的配置文件,主要修改如下内容:

port        ${port},例如:7001文件夹中的port需修改为7001                                    # 这几个文件夹中的redis.conf分别修改为对应的端口

bind        0.0.0.0                                                                                                        # 开启远程连接

daemonize        yes                                                                                                   # 以守护进程运行       

dbfilename        dump${port}.rdb,例如:dump7001.rdb                                         # rdb文件的名称

cluster-enabled        yes                                                                                            # 开启集群模式

cluster-config-file        nodes-${port}.conf,例如:nodes-7001.conf                        # 集群节点配置文件

cluster-node-timeout        5000                                                                                  # 集群节点超时时间

appendonly        yes                                                                                                  # 开启aof的持久化机制

appendfilename        "appendonly-${port}.aof",例如:"appendonly-7001.aof"       # 生成的持久化文件的名称

2.3.4、启动节点

指定不同目录的配置文件,启动7个节点 

./redis-server /myconf/redis/7001/redis.conf
./redis-server /myconf/redis/7002/redis.conf
./redis-server /myconf/redis/7003/redis.conf
./redis-server /myconf/redis/7004/redis.conf
./redis-server /myconf/redis/7005/redis.conf
./redis-server /myconf/redis/7006/redis.conf
./redis-server /myconf/redis/7007/redis.conf

 

2.3.5、创建集群

创建集群

第一步:拷贝redis源码包中的redis-trib.rb 至 /usr/local/bin 目录:cp /opt/redis-4.0.10/src/redis-trib.rb ./

第二步:创建集群

指令解释:

            --replicas 1:指定每个master节点有几个slave节点
            192.168.173.232:7001 :master1
            192.168.173.232:7002 :master2
            192.168.173.232:7003 :master3
            192.168.173.232:7004 :masterXxx的slave节点
            192.168.173.232:7005 :masterXxx的slave节点
            192.168.173.232:7006 :masterXxx的slave节点 

注意事项:

        (1)master的slave节点的选举是随机的。

        (2)第一次创建master集群时,会打印各个节点的信息(例如角色、从节点是谁)

./redis-trib.rb create --replicas 1 192.168.173.232:7001 192.168.173.232:7002 192.168.173.232:7003 192.168.173.232:7004 192.168.173.232:7005 192.168.173.232:7006

2.4、redis-cli连接测试

 

2.5、查看集群状态

(1)查看集群状态:

        第一次创建集群时,会在控制台打印各个节点的详细信息,如果后续想要查看节点的情况应该怎办呢?可以使用如下指令进行查看:

        ./redis-trib.rb check 192.168.173.232:7001

        说明:后边的192.168.173.232:7001为集群中的任意一个节点

(2)集群节点状态说明

主节点:

        ①主节点存在hash slots,且各个主节点的hash slots不存在交叉的情况;

        ②主节点不能删除;

        ③一个主节点可以有多个从节点;

        ④主节点宕机时,多个slave节点自动选举新的主节点;

从节点:

        ①从节点没有hash slots;

        ②从节点可以删除;

        ③从节点不负责数据的写,只负责数据的同步;

2.6、添加主节点

语法:./redis-trib.rb add-node <新加入节点IP:新加入节点PORT> <集群中任意节点IP:集群中任意节点PORT>

案例:./redis-trib.rb add-node 192.168.173.232:7008 192.168.173.232:7001

注意事项:

        (1)要添加的节点必须以集群模式启动;

        (2)默认情况下该节点就是以master节点的形式添加

2.7、添加从节点

语法:./redis-trib.rb add-node --slave  <新加入节点IP:新加入节点PORT> <集群中任意节点IP:集群中任意节点PORT>

案例:./redis-trib.rb add-node --slave 192.168.173.232:7009 192.168.173.232:7001

注意事项:

        (1)要添加的节点必须以集群模式启动;

        (2)当添加的从节点没有指定主节点时,redis会随机给从节点较少的主节点添加当前节点作为它的从节点

为指定的master节点添加从节点

语法:./redis-trib.rb add-node --slave --master-id <masterID> <新加入节点IP:新加入节点PORT> <集群中任意节点IP:集群中任意节点PORT>

案例:./redis-trib.rb add-node --slave --master-id b76e7a8dc7eab793eab245f71e2bc9aabf6997ec 192.168.173.232:7009 192.168.173.232:7001

2.8、删除从节点

语法:./redis-trib.rb del-node <集群中任意节点IP:集群中任意节点PORT> <删除节点ID>

案例:./redis-trib.rb del-node 192.168.173.232:7009 b76e7a8dc7eab793eab245f71e2bc9aabf69xxxx

注意事项:被删除的节点必须是从节点或者是没有分配hash slots的节点

2.9、集群在线分片

语法:./redis-trib.rb reshard <集群中任意节点IP:集群中任意节点PORT>

案例:./redis-trib.rb reshard 192.168.173.232:7009

2.10、 关闭redis集群

语法:./redis-cli -c <-h 192.168.7.4> -p port SHUTDOWN

案例:
        ./redis-cli -c -p 7001 SHUTDOWN

        ./redis-cli -c -p 7001 SHUTDOWN
        ./redis-cli -c -p 7002 SHUTDOWN
        ./redis-cli -c -p 7003 SHUTDOWN
        ./redis-cli -c -p 7004 SHUTDOWN
        ./redis-cli -c -p 7005 SHUTDOWN
        ./redis-cli -c -p 7006 SHUTDOWN
        ./redis-cli -c -p 7007 SHUTDOWN

2.11、参考

https://www.bilibili.com/video/BV1jD4y1Q7tU?p=28&vd_source=72ebc194dbfa51ec950a52c25c337f7c

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304636.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

办公教程分享:网址/文本/电子名片如何批量生成二维码?

日常办公时&#xff0c;我们经常会需要批量生成很多二维码&#xff0c;比如做会议问卷调查、为同事制作名片&#xff0c;再比如策划市场活动、制作设备标签…等都会需要用到大量的二维码。这时候&#xff0c;如果手动一个一个生成二维码&#xff0c;会非常浪费时间和精力。 为…

香港高才通计划申请被拒了?很可能是因为这五个原因!

香港高才通计划申请被拒了&#xff1f;很可能是因为这五个原因&#xff01; 据统计&#xff0c;截止今年10月31日&#xff0c;香港各项输入人才计划共收到超过18万宗申请&#xff0c;超过11万宗已被批准&#xff0c;已有7万人到港。其中&#xff0c;高才通计划一共收到约55,000…

在Java中如何实现一个呼吸动画效果

前言 这里用到了数学中的正弦函数&#xff0c; y s i n ( x ) y sin(x) ysin(x)&#xff0c;sin的周期为2pi 下面的类中实现了一个圆&#xff0c;圆的半径根据 s i n ( x ) sin(x) sin(x)函数的值不断变化和修改&#xff0c;x取值范围[0-2pi]&#xff0c;onTick方法负责修改…

17.(vue3.x+vite)组件间通信方式之作用域插槽

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 作用域插槽 父组件中的插槽内容是无法访问到子组件中的数据的,而作用域插槽就是解决获取子组件数据。 父组件代码 <template><div><div>父组件--Hello World!</div><Child>

短视频怎么批量添加水印logo

在现代数字化时代&#xff0c;视频内容已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;当我们辛辛苦苦制作的视频在网络上分享时&#xff0c;常常会遇到被他人盗用或未经授权使用的情况。为了保护我们的创作成果&#xff0c;给视频添加水印logo成为了一种常见的手段…

QX320F28335,DSP,国产芯片崛起之路

QX320F28335 32位单核CPU 主频150MHz 单精度浮点运算FPU 12位ADC 采样率 4MSPS 12个ePWM 6个HRPWM

网络工程师常用命令,后续还会进行增补

网络工程师常用命令 一、ping命令二、ipconfig命令三、arp命令&#xff08;地址转换协议&#xff09;四、traceroute命令五、route命令六、nslookup命令七、nbtstat命令八、netstat命令九、net命令 一、ping命令 ping ping是最常用的实用程序之一&#xff0c;用来确定网络的连…

基于ssm连锁经营商业管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本连锁经营商业管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

deepface:实现人脸的识别和分析

deepface介绍 deepface能够实现的功能 人脸检测&#xff1a;deepface 可以在图像中检测出人脸的位置&#xff0c;为后续的人脸识别任务提供基础。 人脸对齐&#xff1a;为了提高识别准确性&#xff0c;deepface 会将检测到的人脸进行对齐操作&#xff0c;消除姿态、光照和表…

硕士论文写的重复率 PaperBERT

大家好&#xff0c;今天来聊聊硕士论文写的重复率&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 硕士论文写的重复率 1. 硕士论文的重要性 硕士论文是硕士阶段最重要的学术成果之一&#xff0c;它不仅…

【普中开发板】基于51单片机电子钟闹钟设计( proteus仿真+程序+设计报告+讲解视频)

【普中开发板】基于51单片机电子钟闹钟数码管显示设计( proteus仿真程序设计报告讲解视频&#xff09; Proteus 仿真&#xff1a;Proteus 8.16 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;P03 51单片机电子钟闹钟 1. 主要功能&a…

RK3568驱动指南|第八篇 设备树插件-第74章 虚拟文件系统ConfigFS介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Vue router深入学习

Vue router深入学习 一、单页应用程序介绍 1.概念 单页应用程序&#xff1a;SPA【Single Page Application】是指所有的功能都在一个html页面上实现 2.具体示例 单页应用网站&#xff1a; 网易云音乐 https://music.163.com/ 多页应用网站&#xff1a;京东 https://jd.co…

人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码

人体关键点检测2&#xff1a;Pytorch实现人体关键点检测(人体姿势估计)含训练代码 目录 人体关键点检测2&#xff1a;Pytorch实现人体关键点检测(人体姿势估计)含训练代码 1. 前言 2.人体关键点检测方法 (1)Top-Down(自上而下)方法 (2)Bottom-Up(自下而上)方法&#xff1…

Python实战 | 如何抓取腾讯视频

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 爬虫: 作用: 批量采集数据 / 模拟用户行为 原理: 模拟成 客户端 向 服务器 发送网络请求 环境介绍: python 3.8 解释器 pycharm 编辑器 第三方模块: reques…

《地理信息系统原理》笔记/期末复习资料(12. 地理信息工程)

目录 12. 地理信息工程 12.1. 地理信息系统工程的概念 12.2. 地理信息系统工程建设过程 12.2.1. 应用型地理信息系统设计步骤和方法 12.2.2. 需求分析 12.2.3. 系统设计 12.2.4. 系统开发与实施 12.2.5. 系统的评价和维护 12.3. GIS标准 12.4. 习题 12. 地理信息工程…

java--Collection的常用方法

1.集合体系结构 ①Collection代表单列集合&#xff0c;每个元素(数据)只包含一个值 ②Map代表双列集合&#xff0c;每个元素包含两个值(键值对) 2.Collection集合体系 3.Collection集合特点 1.List系列集合&#xff1a;添加的元素是有序、可重复、有索引 ①ArrayList、Line…

Python接口自动化浅析requests请求封装原理

以下主要介绍如何封装请求 还记得我们之前写的get请求、post请求么&#xff1f; 大家应该有体会&#xff0c;每个请求类型都写成单独的函数&#xff0c;代码复用性不强。 接下来将请求类型都封装起来&#xff0c;自动化用例都可以用这个封装的请求类进行请求 将常用的get、p…

为什么现在招聘C++程序员这么难?

为什么现在招聘C程序员这么难&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「C的资料从专业入门到高级教程工具包」&#xff0c;点个关注&#xff0c;全部无偿共享给大家&#xff01;&#x…