Redis 6.2.4集群搭建

1. 说明

这里使用的是redis的cluster集权模式,没有用哨兵模式(哨兵模式依赖哨兵节点,哨兵节点一旦挂掉就不再高可用了,因此没有采用)。
由于Redis Cluster至少需要6个节点,因此,这里咱们采用的是三主三副的模式。redis的key值通过hash计算会散列在3个主节点中,副节点跟相应主节点保持一致。
在这里插入图片描述

2. Redis相关配置

这里咱们用6380~6385这6个实例标识6个节点的端口,修改相关配置:

#端口号
port 6380
#默认ip为127.0.0.1,需要改为其他节点机器可以访问的ip,否则创建集群时无法访问对应的端口,无法创建集群(使用#注掉bind则任何地址都可访问)
bind 192.168.9.128
#redis后台运行
daemonize yes
#pidfile文件对应6380,6381,6382…
pidfile /var/run/redis_6380.pid
#开启集群
cluster-enabled yes
#集群的配置,配置文件首次启动自动生成6380,6381,6382…
cluster-config-file nodes_6380.conf
#请求超时,默认15秒,可自行设置
cluster-node-timeout 15000
#aof日志开启,有需要就开启,它会每次写操作都记录一条日志
appendonly yes
# 密码保持相同
requirepass 123456

创建6个文件夹,6380~6385,将redis.conf拷贝到这6个文件夹下,并修改以下配置:

#端口号
port 6380
#pidfile文件对应6380,6381,6382…
pidfile /var/run/redis_6380.pid
#集群的配置,配置文件首次启动自动生成6380,6381,6382…
cluster-config-file nodes_6380.conf

将6个节点全部启动:

./src/redis-server 6380/redis.conf &
./src/redis-server 6381/redis.conf &
./src/redis-server 6382/redis.conf &
./src/redis-server 6383/redis.conf &
./src/redis-server 6384/redis.conf &
./src/redis-server 6385/redis.conf &

3. 启动集群

进入src目录,启动集群:

./redis-cli --cluster create 172.17.104.98:6380 172.17.104.98:6381 172.17.104.98:6382 172.17.104.98:6383 172.17.104.98:6384 172.17.104.98:6385 --cluster-replicas 1

这里不要用127.0.0.1的IP,这样配置会产生springboot项目连不上的情况,springboot连上之后,会获取这个集群信息,再用这个信息去连redis。因为你应用和集群不在一台机器上,有可能导致应用连接不上。

4. 集群查看

可以使用cluster info查看集群健康状态,cluster nodes查看集群节点状态。

# 命令中 -c表示集群
[root@localhost src]# ./redis-cli -h 127.0.0.1 -c -p 6380 -a 123456
127.0.0.1:6380> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:5910
cluster_stats_messages_pong_sent:6303
cluster_stats_messages_fail_sent:12
cluster_stats_messages_sent:12225
cluster_stats_messages_ping_received:6303
cluster_stats_messages_pong_received:5903
cluster_stats_messages_fail_received:6
cluster_stats_messages_received:12212
127.0.0.1:6380> cluster nodes
6fa6f4422ff23e39ff5193ff5e53cfdce4f9d5de 172.17.104.98:6383@16383 slave a565cd8244c999e1626b6ba8b76d88bd37059e39 0 1687923362095 1 connected
196b18542407cc079d1fbd8f3d611dc476df0ba8 172.17.104.98:6381@16381 master - 0 1687923359076 2 connected 5461-10922
db7aa96d4cebdd36555216bc4880e6290f185e8b 172.17.104.98:6385@16385 slave 2619026bf36cb586563e20dde244101f7905641f 0 1687923360082 3 connected
2619026bf36cb586563e20dde244101f7905641f 172.17.104.98:6382@16382 master - 0 1687923361088 3 connected 10923-16383
db7698a106d3f09d51dcd0e80dccedc8d58a9d9f 172.17.104.98:6384@16384 slave 196b18542407cc079d1fbd8f3d611dc476df0ba8 0 1687923359000 2 connected
a565cd8244c999e1626b6ba8b76d88bd37059e39 172.17.104.98:6380@16380 myself,master - 0 1687923361000 1 connected 0-5460
127.0.0.1:6380>

5. SpringBoot连接集群

springboot中的配置,由于这里只可以配置一个password,因此需要集群的所有密码都是相同设置,否则连不上redis报错!

# spring配置
spring:redis:cluster:nodes: 172.17.104.98:6380,172.17.104.98:6381,172.17.104.98:6382,172.17.104.98:6383,172.17.104.98:6384,172.17.104.98:6385password: 123456

6. 删除集群

[root@localhost redis-6.2.4]# ls
00-RELEASENOTES  6382  6385            CONDUCT       deps      Makefile         nodes-6381.conf  nodes-6384.conf  redis.conf       runtest-moduleapi  src     utils
6380             6383  appendonly.aof  CONTRIBUTING  dump.rdb  MANIFESTO        nodes-6382.conf  nodes-6385.conf  runtest          runtest-sentinel   tests
6381             6384  BUGS            COPYING       INSTALL   nodes-6380.conf  nodes-6383.conf  README.md        runtest-cluster  sentinel.conf      TLS.md
[root@localhost redis-6.2.4]#

停掉redis所有节点,将所有的nodes-638*的文件都删除,集群将不复存在。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lesson7-1 Zigbee协议栈的使用

目录 协议栈的使用 协议栈的安装和协议栈工程创建 协议栈工程配置 选项卡选择 用户代码编写注意 信道选择及PANID分配 协议栈的使用 协议栈的安装和协议栈工程创建 首先进行协议栈的安装 如何创建自己的协议栈工程: (1)先把整个协议…

Qt 事件过滤器使用QPainter绘制温度

文章目录 【1】eventFilter使用简介【2】QPainter使用简介【3】QPainter绘制温度案例头文件源文件 【4】 UI界面设计【5】温度绘制图 【1】eventFilter使用简介 Qt的eventFilter是一个事件过滤器,可以用来捕获和处理Qt对象的事件。事件过滤器可以被安装到一个对象上…

基于SpringBoot和Vue的医疗设备管理系统的设计与实现(源码+文档+报告)

伴随着网络技术的发展,网络巨头们也在各自的行业中展开了激烈的竞争。网络技术已经渗透到了社会的各个角落,移动支付、远程医疗和健康管理等多种网络技术的普及也日益广泛。同时,网络产业的崛起也极大地影响了传统产业。对医疗设备管理系统的…

Ubuntu 20.04 LTS x86_64 SPEC CPU 2006 cpu2006-1.2.iso 测试笔记

环境 安装依赖项 sudo apt install gfortran 挂载iso sudo mkdir /mnt/cpu2006 sudo mount cpu2006-1.2.iso /mnt/cpu2006 安装 cd /mnt/cpu2006 sh install.sh -d /home/speccpu/cpu2006 SPEC CPU2006 InstallationTop of the CPU2006 tree is /mnt/cpu2006Installing F…

分析Spring Boot项目启动慢原因之 《一》打印bean耗时

分析Spring Boot项目启动原因之 一 打印bean耗时 由于项目比较久远,积累的代码犹如屎山,然后项目启动也特别慢,然后产生想要优化一下启动速度,故写了一个Bean启动时的耗时分析:package com.tekrally.assetManagement.u…

Mysql数据库管理

Mysql数据库管理 一、Mysql数据库管理1.常用的数据类型:2.查看数据库结构1.查看当前服务器中的数据库2.查看数据库中包含的表3.查看表的结构(字段) 二、SQL语句1.创建和删除数据库和表1.创建新的数据库2.创建新的表 2.管理表中的数据记录1.向…

LabVIEW开发呼吸分析系统

LabVIEW开发呼吸分析系统 在日常生活中,许多人都在练习调息法,但大多数人都不知道如何以完美的方式做。不当的做法不会带来适当的结果。一种使用LabVIEW分析呼吸信号的方法,以使人们以完美的方式练习调息。这有助于从业者按照系统指定的说明…

规划电子类专业生涯:打造单片机/嵌入式技术专家之路

如果我是一个电子类专业的学生,打算将来从事单片机/嵌入式方向的职业,我可能会采取以下步骤来规划我的职业生涯: 学术准备:我将全面学习电子工程的基础知识,包括模拟电子、数字电子、信号处理等方面的知识。我会确保自…

C++课程学习记录

目录 1. 前置说明2. 二叉树的模拟2.1 参考资料2.2 二叉树的构建2.2.1 递归构建2.2.2 迭代构建 2.3 二叉树的遍历2.4 二叉树的应用 3. 继承与派生3.1 最简单的生死3.2 动态申请空间的生死3.3 继承中的protectd权限3.4 三种继承方式3.5 修改某些继承成员的继承类型3.6 多级派生3.…

前端搭建名言生成器(内含源码)

目录 前言 名言生成器 页面搭建 功能实现 前言 今天呢我们来给大家展示的,就是一个非常非常简单的名言生成器, 那么它的功能的非常简单,就是我们通过点击按钮,然后可以生成名人名言,然后我们也可以点击按钮将它分享到…

力扣算法刷题Day54|休息日总结:动态规划之股票问题

股票问题 〉题型分类 股票问题 〉解题思路 〉方法论 确定dp数组(dp table)以及下标的含义 枚举股票买入/持有/卖出/不持有/冷冻期等所有可能状态分析哪些状态能合并,哪些需要分开考虑定义二维数组dp[i][j],其中i表示第i天&#x…

C++ Primer(读书笔记)

C源文件通常以.cc、.cxx、.cpp、.cp、.C作为后缀来命名 C语言未定义输入输出语句&#xff0c;而是提供了一个全面的标准库来提供IO机制&#xff0c;对应 iostream、fstream、sstream std::cout<<"Enter Two Numbers"<<std::endl;&#xff0c;这条语句执…