redis的哨兵模式和Redis cluster

news2025/6/6 12:13:59

目录

一. redis的主从复制

二. 哨兵模式

2.1 定义

2.2 作用

2.3 配置实例

三. Redis cluster

3.1 定义

3.2 作用

3.3 配置实例 

1. 新建集群文件目录

2. 准备可执行文件到每个文件夹

3. 开启群集功能

4. 启动redis节点

5. 查看是否启动成功

6. 启动集群

7. 测试集群

四.  命令行配置


一. redis的主从复制

#主服务器
vim /apps/redis/etc/redis.conf
requirepass 123456

#从服务器
vim /apps/redis/etc/redis.conf
replicaof 192.168.52.105 6379
masterauth 123456
systemctl restart redis

#主服务器
redis-cli -a 123456 info replication

二. 哨兵模式

2.1 定义

Redis 哨兵模式主要用于实现 Redis 的高可用性。

2.2 作用

  1. 主从切换:当主节点(Master)出现故障时,哨兵会自动将一个从节点(Slave)提升为新的主节点,确保服务不中断。

  2. 监控:哨兵持续监控 Redis 主节点和从节点的健康状态,检测节点是否在线或出现故障。

  3. 通知:当检测到故障或主从切换时,哨兵可以通过配置的方式通知管理员或其他系统。

  4. 配置管理:哨兵会自动更新客户端的主节点地址,确保客户端始终连接到正确的主节点。

2.3 配置实例

实验设备

Ubuntu---192.168.52.105(主服务器)
Ubuntu1---192.168.52.31和Ubuntu2---192.168.52.107(从服务器)
#主服务器
vim /data/redis-6.2.6/sentinel.conf
bind 0.0.0.0
logfile "/apps/redis/log/sentinel.log"

#修改sentinel monitor mymaster 127.0.0.1 6379 2为
sentinel monitor mymaster 192.168.52.105 6379 2

sentinel auth-pass 123456
sentinel down-after-milliseconds mymaster 3000


#从服务器
vim /apps/redis/etc/redis.conf
masterauth 123456
replicaof 192.168.52.105 6379

#查看
redis-cli
info

 

#主服务器
vim /data/redis-6.2.6/sentinel.conf

sentinel monitor mymaster 192.168.52.105 6379 2

sentinel auth-pass mymaster 123456
#从服务器
echo  "requirepass 123456" >> /apps/redis/etc/redis.conf 
systemctl restart redis
在主
cd /data/redis-6.2.6/
cp sentinel.conf /apps/redis/etc/
cd /apps/redis/etc/
chown redis:redis sentinel.conf

scp sentinel.conf 192.168.52.31:/apps/redis/etc/
scp sentinel.conf 192.168.52.107:/apps/redis/etc/

在从
cd /apps/redis/etc/
chown redis:redis sentinel.conf
#必须先从主服务器开始,然后再是从服务器
cat  >> /lib/systemd/system/redis-sentinel.service  <<eof
[Unit]
Description=Redis Sentinel
After=network.target
[Service]
ExecStart=/apps/redis/bin/redis-sentinel /apps/redis/etc/sentinel.conf --supervised systemd
ExecStop=/bin/kill -s QUIT $MAINPID
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
eof

systemctl daemon-reload 
systemctl start redis-sentinel.service

tail sentinel.conf

 

 

三. Redis cluster

3.1 定义

Redis Cluster 是 Redis 官方提供的分布式解决方案,主要用于实现 Redis 的高可用性和数据分片。

3.2 作用

  1. 数据分片:Redis Cluster 将数据自动分片到多个节点上,每个节点只存储部分数据,从而支持更大规模的数据集。

  2. 高可用性:每个分片(Shard)都有主节点和从节点,当主节点出现故障时,从节点会自动提升为主节点,确保服务不中断。

  3. 自动故障转移:Redis Cluster 会自动检测节点故障,并进行主从切换,无需人工干预。

  4. 数据一致性:Redis Cluster 使用异步复制来保证数据的一致性,同时支持部分同步(Partial Resynchronization)以减少数据丢失。

  5. 客户端透明访问:客户端可以连接到任意节点,Redis Cluster 会自动将请求路由到正确的节点。

3.3 配置实例 

1. 新建集群文件目录

cd  /apps/redis/
mkdir -p redis-cluster/redis600{1..6}

2. 准备可执行文件到每个文件夹

cd redis-cluster/
for i in {1..6}
do
cp /data/redis-6.2.6/redis.conf /apps/redis/redis-cluster/redis600$i
cp /data/redis-6.2.6/src/redis-cli /data/redis-6.2.6/src/redis-server /apps/redis/redis-cluster/redis600$i
done

#查看
tree

 

3. 开启群集功能

cd /apps/redis/redis-cluster/redis6001/
vim redis.conf
bind 0.0.0.0							#默认监听所有网卡  
protected-mode no						#修改,关闭保护模式
port 6001								#修改,redis监听端口,
daemonize yes							#开启守护进程,以独立进程启动  如果是 systemd 启动不需要修改
cluster-enabled yes						#取消注释,开启群集功能
cluster-config-file nodes-6001.conf		#取消注释,群集名称文件设置
cluster-node-timeout 15000				#取消注释群集超时时间设置
appendonly yes							#修改,开启AOF持久化
daemonize yes                           #开启后台启动

#将 redis6001 目录下的 redis.conf 配置文件复制到 redis6002 到 redis6006 目录中。
cd /apps/redis/redis-cluster/redis6001
for i in {2..6}
do
\cp -f  ./redis.conf   /apps/redis/redis-cluster/redis600${i}
done



#修改端口号
sed  -i   's/6001/6002/'   /apps/redis/redis-cluster/redis6002/redis.conf
sed  -i   's/6001/6003/'   /apps/redis/redis-cluster/redis6003/redis.conf
sed  -i   's/6001/6004/'   /apps/redis/redis-cluster/redis6004/redis.conf
sed  -i   's/6001/6005/'   /apps/redis/redis-cluster/redis6005/redis.conf
sed  -i   's/6001/6006/'   /apps/redis/redis-cluster/redis6006/redis.conf

 

4. 启动redis节点

systemctl stop redis

for d in {1..6}
do
cd /apps/redis/redis-cluster/redis600$d
redis-server redis.conf
done

 

5. 查看是否启动成功

ps aux|grep redis

6. 启动集群

redis-cli --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1

7. 测试集群

redis-cli -p 6001  -c
#查看节点的哈希槽编号范围
cluster slots			

#生成数据测试
set name zhangsan
#查看name键的槽编号
cluster keyslot name

 

四.  命令行配置

命令解释
info replication查看主从状态
repliacaof 或者 ( slaveof )添加主从配置 例子: repliacaof 192.168.91.100 6379
CONFIG SET masterauth 123456临时设置密码
repliacaof masterip masterport临时添加主设置
REPLICAOF no one取消 主从配置

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

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

相关文章

农业机器人的开发

农业机器人的开发 喷农药机器人 番茄采摘机器人 葡萄采摘机器人 黄瓜采摘机器人 西瓜采摘机器人 蘑菇采摘机器人 草莓采摘机器人 草莓采摘机器人综述 视觉系统 CCD摄像机&#xff0c;距离传感器&#xff0c;PC计算机 其中CCD摄像机的作用是进行彩色图像的采集和进行果…

Swift 解锁 LeetCode 热门难题:不改数组也能找出重复数字?

文章目录 摘要描述题解答案题解代码分析解读&#xff1a; 示例测试及结果时间复杂度空间复杂度总结实际场景类比可运行 Demo&#xff08;Swift Playground&#xff09;未来展望 摘要 在数组中找出唯一的重复数字&#xff0c;听起来像一道简单的题目&#xff0c;但如果你不能修…

【深度学习】15. Segment Anything Model (SAM) :基于提示的分割新时代

Segment Anything Model (SAM) &#xff1a;基于提示的分割新时代 基本介绍 The first foundation model for promptable segmentation. Segment Anything Model&#xff08;简称 SAM&#xff09;是 Meta AI 于 2023 年提出的一种通用型图像分割基础模型。与以往分割模型不同&…

Java从入门到精通 - 常用API(一)

常用 API 此笔记参考黑马教程&#xff0c;仅学习使用&#xff0c;如有侵权&#xff0c;联系必删 文章目录 常用 API1. 包代码演示 2. String2.1 String 概述代码演示总结 2.2 String 的常用方法代码演示 2.3 String 使用时的注意事项第一点第二点代码演示 总结题目 2.4 String…

实现Cursor + Pycharm 交互

效果演示&#xff1a; 直接可以在cursor或Pycharm中点击右键点击&#xff0c;然后就可以跳转到另一个应用的对应位置了 使用方法&#xff1a; 分别在两个应用中安装插件【Switch2Cursor Switch2IDEA&#xff0c;这两个插件分别安装在 IDEA 和 Cursor 中】&#xff1a; Switc…

C++标准模板库

C标准库参考&#xff1a; C 标准库-CSDN博客 标准模板库STL C 标准库 和 STL 的关系 1. 严格来说&#xff0c;STL ≠ C 标准库 STL&#xff08;Standard Template Library&#xff09; 是 C 标准库的一个子集&#xff0c;主要提供泛型编程相关的组件&#xff08;如容器、迭代器…

dvwa6——Insecure CAPTCHA

captcha&#xff1a;大概是“我不是机器人”的一个勾选框或者图片验证 LOW: 先输入密码正常修改试一下&#xff08;123&#xff09;&#xff0c;发现报错 查看源码&#xff1a; <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 ) ) {// Hide the C…

【学习笔记】On the Biology of a Large Language Model

On the Biology of a Large Language Model 1 Introduction 目标是对这些模型的内部工作机制进行逆向工程&#xff0c;从而更好地理解它们&#xff0c;并评估它们是否适合特定用途。 正如细胞是生物系统的基本构建单元&#xff0c;我们假设特征是模型内部计算的基本单位。仅仅…

飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程

#下载docker Index of linux/static/stable/ 根据电脑的CPU类型选择&#xff1a; Intel和AMD选x86_64飞腾D2000选aarch64 #选择较新的版本 #在包含下载的docker-XX.X.X.tgz的文件夹中右键->打开终端 # 解压安装包&#xff08;根据实际下载的文件&#xff09; tar -zxvf …

星野录(博客系统)测试报告

目录 一. 项目背景 二、项目功能 三、测试计划 1. 功能测试 1.1 测试用例 1.2 执行测试部分操作截图 2. 使用selenium进行自动化测试 2.1 添加相关依赖 2.2 登录页面测试 3.3 注册页面测试 3.4 博客列表页面测试 3.5 博客详情页测试 3.6 博客编辑页面测试 3.7 个人…

使用 Java 实现一个简单且高效的任务调度框架

目录 一、任务调度系统概述 (一)任务调度的目标 (二)任务调度框架的关键组成 二、任务状态设计 (一)任务状态流转设计 (二)任务表设计(SQL) 三、单机任务调度实现 (一)获取待处理任务 (二)执行任务 代码实现(单线程版本) (三)多线程提高吞吐量 四…

2022—2025年:申博之路及硕士阶段总结

文章目录 1 前景概要2 打造神兵利器2.1 夺天地之精2.2 锻兵魂之形2.3 契人兵之命 3 潜心闭关修炼3.1 第一阶段&#xff1a;苦心智3.2 第二阶段&#xff1a;劳筋骨3.3 第三阶段&#xff1a;摧意志 4 突破晋级4.1 突破失败4.2 聚气凝神4.3 心魔再现4.4 新起点 5 回顾及深思 1 前景…

项目执行中缺乏灵活应对机制,如何增强适应性?

项目执行中缺乏灵活应对机制可以通过建立风险预警机制、培养团队快速响应能力、制定动态调整方案、加强团队沟通协作、引入敏捷管理理念来增强适应性。 其中&#xff0c;培养团队快速响应能力尤为重要。这种能力意味着当项目遇到突发状况时&#xff0c;团队能迅速评估问题、确定…

Agentic Workflow是什么?Agentic Workflow会成为下一个AI风口吗?

无论是想要学习人工智能当做主业营收&#xff0c;还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿&#xff0c;都有必要了解、学习一下人工智能。 近期发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;入行门槛低&#x…

BUUCTF[极客大挑战 2019]EasySQL 1题解

[极客大挑战 2019]EasySQL题解 分析解题过程漏洞原理分析明确注入点&#xff1a;尝试万能密码法法一法二 总结 分析 从题目分析&#xff0c;这道题应该与SQL注入有关&#xff0c;启动靶机之后&#xff0c;访问url是一个登录界面&#xff0c;随便输入用户名密码之后&#xff0…

大模型 提示模板 设计

大模型 提示模板 设计 论文介绍:LangGPT - 从编程语言视角重构大语言模型结构化可复用提示设计框架 核心问题: 现有提示工程缺乏结构化设计模板,依赖经验优化,学习成本高且复用性低,难以支持提示的迭代更新。 创新思路: 受编程语言的结构化和可复用性启发,提出LangGP…

excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数

文章目录 引用I 基础求和∑II Excel中Evaluate函数基于字符串表达式进行计算用法案例 :基于Evaluate实现汇率计算利润知识扩展在单元格内的换行选择整列单元格引用 需求: 基于汇率计算利润,调整金额以及进汇率和出汇率自动算出利润,已经统计总利润。 基于Evaluate实现汇率计…

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s

20250602在荣品的PRO-RK3566开发板的Android13下的uboot启动阶段配置BOOTDELAY为10s 2025/6/2 18:15 缘起&#xff1a;有些时候&#xff0c;需要在uboot阶段做一些事情。 于是&#xff0c;希望在荣品的PRO-RK3566开发板的Android13下的uboot启动停下。 1、【原始的LOG&#xff…

ssh登录wsl2

1. ssh服务重新安装 Ubuntu20.04子系统自带的ssh服务无法连接&#xff0c;需卸载后重新安装。 sudo apt-get remove openssh-server sudo apt-get install openssh-server2. 修改配置信息 sudo vim /etc/ssh/sshd_config修改内容&#xff1a; # 最好一模一样 Port 33 # 这…

黑马Java面试笔记之 消息中间件篇(Kafka)

一. Kafka保证消息不丢失 Kafka如何保证消息不丢失 使用Kafka在消息的收发过程中都会出现消息丢失&#xff0c;Kafka分别给出了解决方案 生产者发送消息到Brocker丢失消息在Brocker中存储丢失消费者从Brocker接收消息丢失 1.1 生产者发送消息到Brocker丢失 设置异步发送 消息…