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

redis主从+高可用切换+负载均衡

1. redis主从配置

# 在master中
cp sentinel.conf /etc/redis/
vim /etc/redis/sentinel.conf
scp /etc/redis/sentinel.conf server2:/etc/redis/
scp /etc/redis/sentinel.conf server3:/etc/redis/
redis-sentinel /etc/redis/sentinel.conf # 启动监控

在这里插入图片描述

在这里插入图片描述

# 在slave中
redis-sentinel /etc/redis/sentinel.conf # 启动监控,在这之前一定要同步好sentinel.conf文件

在这里插入图片描述

2. 高可用自动切换

2.1 原master down

在这里插入图片描述

在这里插入图片描述

2.2 原master恢复为slave

在这里插入图片描述
在这里插入图片描述

2.3 问题

当客户机和master直接网络畅通,而master和slave直接网络故障,在切换主从过程中,客户向原来的master中写数据,会造成丢失。需要限制在切换主从时候添加数据。

min-slaves-to-write=2

在这里插入图片描述

在这里插入图片描述

3. 负载均衡(redis集群)

无中心化,所有节点均可读写

3.1 配置

# 停用之前的环境,防止影响实验
/etc/init.d/redis_6379 stop
cd utils/create-cluster/
./create-cluster start # 开启集群,该文件是配置文件,可以在里面加入集群的IP

在这里插入图片描述

3.2 拉起

# 快速拉起集群
./create-cluster create

在这里插入图片描述

redis-cli --cluster check 127.0.0.1:30001 # 查看集群

在这里插入图片描述

3.3 调用

redis-cli -c -p 30004 # 进入某个节点

在这里插入图片描述

在任意一节点上写入数据,会被重定向到对应的master。

3.4 故障切换

redis-cli -c -p 30002 shutdown # 原先的master故障

在这里插入图片描述

3.5 集群不可用

当hash表不完整时候,集群不可用
在这里插入图片描述
在这里插入图片描述

3.6 在线增加节点

vim create-cluster

在这里插入图片描述

./create-cluster start # 在线开启
 redis-cli --cluster help
 redis-cli --cluster add-node 127.0.0.1:30007 127.0.0.1:30001 # 添加节点

在这里插入图片描述

在这里插入图片描述

redis-cli --cluster add-node 127.0.0.1:30008 127.0.0.1:30001 --cluster-slave --cluster-master-id 6857101497d39b5d9ab59fbbd3b533c96baa1b4e # 添加节点同时,将其作为30007的slave

在这里插入图片描述

# 交互式手动分配hash
redis-cli --cluster reshard 127.0.0.1:30001 # 后面的节点任意

在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/287659.html

相关文章:

  • RabbitMQ的工作队列在Spring Boot中实现(详解常⽤的⼯作模式)
  • linux虚拟机无法使用yum在线拉取
  • html + css 自适应首页布局案例
  • leetcode 扫描线专题 06-leetcode.253 meeting room ii 力扣.253 会议室 II
  • 浪浪云轻量服务器搭建vulfocus网络安全靶场
  • docker部署bitnami/etcd:latest
  • react 列表页面中管理接口请求的参数
  • 当前开发技术的未来发展:趋势、机遇与挑战
  • Spring Cloud Stream与Kafka(一)
  • 【网络安全】Bingbot索引投毒实现储存型XSS
  • 华为OD机试真题 - 拼接URL(Python/JS/C/C++ 2024 D卷 100分)
  • RabbitMQ当消息消费失败时,会重新进入队列吗?
  • skywalking接入nginx
  • ElasticSearch 集群索引和分片的CURD
  • 51单片机-LED闪烁
  • MD5 数字摘要算法的详细介绍与 Python 实现
  • RabbitMQ安装步骤
  • 一键编译QT5源码脚本(交叉编译arm64、mips64版本)
  • Laravel邮件发送功能的实现的方法和技巧?
  • 【HTML】模拟消息折叠效果【附源代码】
  • 云计算day37
  • 解决Linux安装epel源提示没有可用安装包
  • 访问Neo4j验证失败(The client is unauthorized due to authentication failure.)
  • 缓存使用-缓存击穿、穿透、雪崩概念
  • 数据仓库系列13:增量更新和全量更新有什么区别,如何选择?
  • 基于单片机的自动浇花控制写设计任务书