Redis 6.2.4集群搭建

news2024/9/27 9:21:42

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:6385
    password: 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.coloradmin.cn/o/695962.html

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

相关文章

【运维】Linux系统 AnolisOS [CentOs替代品]

【运维】AnolisOS 安装 CentOs替代品 下载 - OpenAnolis 龙蜥操作系统开源社区 Index of /anolis/ (aliyun.com)

(编辑器)HBuilderX怎么自动格式化代码

(编辑器)HBuilderX怎么自动格式化代码 解决参考:https://blog.csdn.net/G806218/article/details/127833356

CSDN 个性化推荐的数据治理

目录 1. 背景2. 数据治理2.1 从内容层面提升数据质量2.2 从用户层面提升数据质量2.3 增加特定数据的曝光2.4 保证数据的正确性与实效性 3. 总结 相关阅读 CSDN 个性化推荐系统的设计和演进如何支持研发对CSDN个性化推荐系统重构 1. 背景 CSDN 的个性化推荐流在主站中是一个很…

用UDP套接字实现客户端和服务端通信

IP地址和port端口号 IP地址 数据有IP(公网)标识一台唯一的主机。 port端口号 为了更好的标识一台主机上服务进程的唯一性,我们采用端口号port,标识服务器进程,客户端进程的唯一性! ip端口号 IP地址(主机全网唯一性) 该主机上的端…

一年省七位数,得物自建HFDS在 Flink Checkpoint 场景下的应用实践

1 背景 随着Flink实例的迁移下云以及新增需求接入,自建Flink平台规模逐渐壮大,当前总计已超4万核运行在自建的K8S集群中,然而 Flink 任务数的增加,特别是大状态任务,每次Checkpoint 时会产生脉冲式带宽占用&#xff0…

统计项目代码行数工具cloc

Ubuntu用户 使用cloc在ubuntu内统计代码行数 安装cloc工具 sudo apt-get install cloc进入需要统计的目录内,然后执行 cloc .然后就会显示文件目录中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。 Windows 用户 也是使用cloc工具 …

leecode-下一排列

题目 题目 分析 妈呀,其实我直接调用函数,一行代码就通过了hhh,不过这种取巧的方式不可取,还是得老老实实的写。 首先需要明白什么叫下一排列? 比如输入: 1 5 8 4 7 6 5 3 1 答案就是: 1 5 …

什么是楼宇卫生间智慧厕所系统

楼宇卫生间智慧厕所系统是专为写字楼、办公楼、商场、集团大厦、工厂等应用场景所设计的解决方案。它利用全自动采集和监控智能化、无线数据传输功能,通过云平台管理软件和手机端应用,实现了公厕的智能化管理和使用者的便利。 随着城市化进程的加速&…

[Json]控制返回数据是否包含某个属性

控制返回数据是否包含某个属性 在我们返回给前端的Json格式的数据时,通常我们会定义一个类,里面定义几个成员变量用来定义返回给前端的具体内容,例如: package cn.tedu.csmall.commons.web;import io.swagger.annotations.ApiMo…

HDLbits--Exams/2013 q2bfsm

try1: module top_module (input clk,input resetn, // active-low synchronous resetinput x,input y,output f,output g ); parameter a0,b1,x12,x23,y14,y25,g16,g07;//b为resetn无效后的状态,在b状态使f保持一个周期 //b收到1后转移到x1,x1收到…

基于双机多线程的程序加速设计

摘要 不断提高程序的运行效率,而又不影响程序功能是程序员的不竭追求。本项目旨在利用并行技术进一步提高程序的效率。 程序设计中,主要实现了百万级数据的求和、求最大值以及排序功能。其中,排序功能使用快速排序算法和归并算法实现。共采用…

lenovo联想笔记本ThinkBook 14 Gen5+ IRH(21HW)原装Win11系统镜像原厂OEM恢复出厂状态

LENOVO联想笔记本电脑,ThinkBook 14 Gen5 IRH(21HW),原厂Windows11原装OEM系统,恢复出厂时状态系统 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式&#x…

使用凌鲨查看mysql数据

MySQL是一种开源的关系型数据库管理系统,它被广泛应用于软件开发领域。它具有高可靠性、高性能、易于使用和可扩展性等优点,被许多大型企业和网站所采用。MySQL支持多种编程语言和操作系统,可以轻松地与其他应用程序集成。 继之前我们在凌鲨…

python如何将图片显示在网页上

from flask import Flask, render_template_string import base64 import cv2import osapp Flask(__name__)# 读取图像app.route(/)def index():# 读取图像文件并将其转换为Base64编码的字符串img_path 1.pngimg_data open(img_path, rb).read()img_base64 base64.b64encod…

vue中纯手写单选复选框样式(隐藏原生样式)

基于vue2项目&#xff0c;代码会全部在下面贴出&#xff0c;大家重点关注相关v-for循环实现及样式实现&#xff0c;先看效果&#xff1a; 先看单选 单选组件<easy-radio>&#xff1a; <template><div><div class"radio-item" v-for"(opt…

TLC能力加QLC价格:Solidigm D5-P5430评测

产品介绍 前段时间在Solidigm D5-P5316的帮助下&#xff0c;计算圆周率100万亿位数的世界纪录被刷新&#xff0c;新纪录的计算效率达到之前的三倍。我们一方面能够感受到SSD对高性能计算的影响&#xff0c;另一方面也看到QLC已经在数据中心中得到广泛采用。今天PCEVA评测的是使…

IVIEW常用问题解决

1 FormItem 里面绑定帮助框 导致字段不检验 <FormItem label"备货通知单" prop"noticeIdStr"><Input style"width: 200px;" :title"noticeIdStr"icon"ios-list-box-outline"on-click"showNotice" v-mod…

基于深度学习的细粒度漏洞检测框架VulDeeLocator

源自&#xff1a;IEEE Transactions on Dependable and Secure Computing 作者&#xff1a;Zhen Li, Deqing Zou, Shouhuai Xu, Zhaoxuan Chen, Yawei Zhu, Hai Jin. 背景与动机 设计与实现 图1 VulDeeLocator框架 图2 sSyVC和iSeVC的生成示例 图3 BRNN-vdl模型 实验结果 表…

【④MySQL函数】:让你的数据库操作更高效(一)

前言 ✨欢迎来到小K的MySQL专栏&#xff0c;本节将为大家带来MySQL字符串函数和数学函数的讲解✨ 目录 前言一、字符串函数二、数学函数三、总结 一、字符串函数 函数作用UPPER(列|字符串)将字符串每个字符转为大写LOWER(列|字符串)将字符串每个字符转为小写CONCAT(str1,str2,…

QSS QCalendarWidget

样式分布图&#xff1a; 知道了每个 widget 后&#xff0c;就可以像下面这样用 QSS 修改 QCalendarWidget 的样式了。 示例1&#xff1a; #qt_calendar_calendarview {background: white; }#qt_calendar_navigationbar {background: rgba(215, 215, 215, 255); }QToolButton …