当前位置: 首页 > 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取消 主从配置
http://www.lqws.cn/news/91297.html

相关文章:

  • 微软推出 Bing Video Creator,免费助力用户轻松创作 AI 视频
  • [Java 基础]Java 语言的规范
  • 网络安全-等级保护(等保) 3-3-1 GB/T 36627-2018 附录A (资料性附录) 测评后活动、附 录 B (资料性附录)渗透测试的有关概念说明
  • UG-制图功能
  • Python-nuitka
  • Shell脚本编程
  • 2025年微信小程序开发:趋势、最佳实践与AI整合
  • SpringBoot接入Kimi实践记录轻松上手
  • 博客摘录「 数据库系统概论课后习题答案(第五版 王珊、萨师煊)」2024年10月30日
  • 【C++高级主题】多重继承下的类作用域
  • OD 算法题 B卷【跳格子2】
  • CSRF攻击与防御
  • 快速了解GO+ElasticSearch
  • [Linux] MySQL源码编译安装
  • 工作自动化——工作自动提炼--智能编程——仙盟创梦IDE
  • 系统设计面试利器:The System Design Primer开源项目介绍
  • vue+cesium示例:地形开挖(附源码下载)
  • AI+3D 视觉重塑塑料袋拆垛新范式:迁移科技解锁工业自动化新高度
  • 【亲测有效】Mybatis-Plus中更新字段为null
  • PostgreSQL数据库备份
  • KEYSIGHT是德科技 E5063A 18G ENA系列网络分析仪
  • 数据库的操作
  • Oracle中的循环——FOR循环、WHILE循环和LOOP循环
  • 鸿蒙版Taro 搭建开发环境
  • 腾讯 ovCompose 开源,Kuikly 鸿蒙和 Compose DSL 开源,腾讯的“双”鸿蒙方案发布
  • Oracle 用户/权限/角色管理
  • Go基础|map入门
  • 【灵动Mini-F5265-OB】vscode+gcc工程创建、下载、调试
  • React从基础入门到高级实战:React 高级主题 - React 微前端实践:构建可扩展的大型应用
  • 如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案