当前位置: 首页 > news >正文

redis的哨兵模式和Redis cluster

目录

一. 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 2sentinel 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.confsentinel monitor mymaster 192.168.52.105 6379 2sentinel 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.confscp 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
eofsystemctl daemon-reload 
systemctl start redis-sentinel.servicetail 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 redisfor 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取消 主从配置

相关文章:

  • mapbox高阶,生成并加载等时图
  • 华为数据之道 精读——【173页】读书笔记【附全文阅读】
  • 基于大模型的短暂性脑缺血发作(TIA)全流程预测与干预系统技术方案
  • Apache Iceberg 如何实现分布式 ACID 事务:深度解析大数据时代的可靠数据管理
  • 智启未来:AI重构制造业供应链的五大革命性突破
  • Java基础 Day28 完结篇
  • 深入解析 MultipartFile:Spring 框架下的高效文件处理方案
  • 【笔记】使用Media Creation Tool给新主机装win10魔改iso
  • Spring @Value注解的依赖注入实现原理
  • 2025年微信小程序开发:趋势、最佳实践与AI整合
  • 笔记:算法题目中需要处理 int 某个位的三种方法:for、while、to_string
  • SpringBoot中缓存@Cacheable出错
  • SpringBoot 数据库导入导出 Xlsx文件的导入与导出 全量导出 数据库导出表格 数据处理 外部数据
  • 基于SpringBoot的“嗨玩旅游”网站设计与实现(源码+定制+开发)嗨玩旅游平台开发:景点展示与个性化推荐系统(SpringBoot)
  • 《数据挖掘》- 房价数据分析
  • 《Spring Bean 是怎么被创建出来的?容器启动流程全景分析》
  • mobilnet v4 部署笔记
  • Spring AOP:面向切面编程 详解代理模式
  • LangChain系列之LangChain4j集成Spring Bot
  • 户外摄像头监控如何兼顾安全实时监控
  • 网站没权重/最新军事消息
  • 如何推广网站架构/长沙网站搭建优化
  • 深圳市顺建建设工程有限公司网站/搜索引擎优化简历
  • 施工企业安全生产责任制度/seo推广优化方案
  • 南京网站设计/今日热点新闻事件
  • 如何做网站截流/猪八戒网接单平台