redis-主从复制

1.主从复制

1.1简介

主机数据更新后根据配置和策略, 自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

1.2作用

1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

3、负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

4、读写分离:可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量。

5、高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础

2.复制原理

  • Slave启动成功连接到master后会发送一个sync命令
  • Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步
  • 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
  • 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
  • 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

3.一仆二主

3.1找到原始的redis.conf 文件

3.2创建伪集群

3.2.1创建一主两从配置文件

3.2.2配置各配置文件

3.2.4启动三台服务器

redis-server /usr/local/myredis/redis6381.conf

指定配置文件启动服务

3.2.5进入命令行 (指定端口号)

查看运行状态 :info replication

3.2.6配置从服务器

没有设置主从关系的话,每一台服务器都是master

3.2.6.1从服务器中info replication
3.2.6.1主服务器info replication

4.薪火相传

4.1后面的从节点把主节点设置为上一个节点

4.2即使主节点也是从节点

4.3概括图

4.4缺点

如果中间的宕机了,则集群就瘫痪了

4.5反客为主(手动挡)

4.5.1让主节点宕机

4.5.2让从节点成为主节点

slaveof no one

5.哨兵机制(sentinel)

主从配置成一主二从

哨兵选举机制,如果有半数节点发现某个异常节点,共同决定改异常节点的状态,如果该节点是主节点,对应的备节点自动顶替为主节点。Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。

5.1编写哨兵配置文件

名字不要写错 sentinel.conf

5.2监听

当主机挂掉,从机选举中产生新的主机

主机改变成6382了

5.3自动监听

5.4关于旧主机恢复正常

原主机重启后会变为从机

5.5图示更改过程

5.6优先级

优先级在redis.conf中默认:replica-priority 100,值越小优先级越高

偏移量是指获得原主机数据最全的

每个redis实例启动后都会随机生成一个40位的runid

相关推荐
Oueii1 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝1 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
2401_831824962 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf2 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
twc8292 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
@我漫长的孤独流浪2 小时前
Python编程核心知识点速览
开发语言·数据库·python
2401_851272992 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
lay_liu2 小时前
Linux安装redis
linux·运维·redis
枕布响丸辣2 小时前
MySQL 从入门到精通:完整操作手册与实战指南
数据库·mysql
电商API&Tina2 小时前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json