Redis学习(八):Redis主从复制

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis学习(八):Redis主从复制

一、主从复制是什么


       

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


8fdc90ddf6914a13905482ee0c9dbcf0.png


二、主从复制能干什么



1、读写分离,性能扩展

       

主服务器负责写,从服务器负责读。

       

当应用需要进行读操作时,直接到从服务器中读取数据;当应用需要进行写操作时,将数据写入主服务器中,再复制到从服务器中。


2、容灾快速恢复


如果一台从服务器宕机,可以再从其他从服务器中读取;如果一台主服务器宕机,可以做成集群模式,集群中的每一个部分都是一主多从的配置。


三、复制原理



Slave启动成功连接到master后会发送一个sync命令,Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步(全量复制);在此之后,每次master更新的数据会主动地写入slave中(增量复制)。


全量复制:slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。

增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步


3f855b6ffac349699cbca7b7c2e8482e.png


简而言之,从机连接上主机之后,主动请求数据同步;主机将所有数据同步到rdb中,将rdb文件发送给从机。在此之后的每次主机数据更新,都由主机主动地更新到从机中。

 

四、常用的三种策略



1、一主二仆

96c2fcaf75174002ac8cbdae4d60d426.png



从机宕机后,再次重启会变为其他主机,需要手动将其假如到当前主机中变为从机;主机宕机后,从机还为从机,在主机重启后还是主机的从机。

     

成为某个主机的从机的命令:

slaveof  <ip><port>


605e239001bc4e40ab00402a6688fa37.png


上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master。

类似于主机下管理着从机小组长,从机小组长下面又管理着从机。


优点: 可以有效减轻master的写压力,去中心化降低风险。


缺点:一个从机宕机,后面的slave都没法备份;主机宕机,从机还是从机,无法写数据。


3、反客为主


当一个master宕机后,后面的slave可以立刻升为master,其后面的slave不用做任何修改。


将从机变为主机的命令:

slaveof  no one


那么能否自动使从机变为主机呢?


五、哨兵模式



1、哨兵模式是什么

       

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。


dd46ef42bfbf4a0aa476e7f302f96984.png


2、怎么设置哨兵

 

sentinel monitor mymaster 127.0.0.1 6379 1


其中mymaster为监控对象起的服务器名称;127.0.0.1和6379为监控的主机IP和端口号;1 为至少有多少个哨兵同意迁移的数量。


3、哨兵的作用:故障恢复


32e163d8c28b49b8a8189ab8b276ad06.png


当主机宕机时,哨兵从从机中挑选一台作为主机。选出主机后,哨兵向所有从服务发送slaveof的臣服命令,使所有的从机归顺主机。当主机重启后,也必须臣服与新主,哨兵也会向其发送slaveof命令。


再说一下从机变为主机的挑选原则:优先级小的为主机;优先级相同的,偏移量大的为主机;优先级和偏移量相同的,runid小的为主机。解释一下优先级、偏移量和runid三个概念:优先级是Redis配置文件中配置的值,默认为100,值越小优先级越高;偏移量是指从机获取原主机数据的完整度,获得数据比较全的偏移量较高;每一个Redis实例启动后都会有的一个40位runid


总结起来,sentinel就像托孤大臣一样,扶植新主,统领群臣朝拜,即使旧主归来也要俯首。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5月前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
|
2月前
|
NoSQL 数据可视化 Linux
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
本文介绍了Redis的两个可视化管理工具:付费的Redis Desktop Manager和免费的Another Redis DeskTop Manager,包括它们的下载、安装和使用方法,以及在使用Another Redis DeskTop Manager连接Redis时可能遇到的问题和解决方案。
146 1
redis学习四、可视化操作工具链接 centos redis,付费Redis Desktop Manager和免费Another Redis DeskTop Manager下载、安装
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
318 3
|
6月前
|
NoSQL Java Redis
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
87 0
|
2月前
|
NoSQL Java Redis
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
这篇文章介绍了如何使用Spring Boot整合Apache Shiro框架进行后端开发,包括认证和授权流程,并使用Redis存储Token以及MD5加密用户密码。
37 0
shiro学习四:使用springboot整合shiro,正常的企业级后端开发shiro认证鉴权流程。使用redis做token的过滤。md5做密码的加密。
|
2月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
39 3
|
2月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
29 3
|
2月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
347 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
2月前
|
NoSQL Redis
redis学习五、错误总结,redis正常运行时后会出现一些bug 总结。
本文介绍了Redis在正常运行时可能遇到的一个错误,即无法进行磁盘持久化的问题,并提供了通过设置`stop-writes-on-bgsave-error`为`no`来解决这一问题的方案。
110 0
|
3月前
|
NoSQL 网络协议 Redis
Redis的主从复制和哨兵模式
本文详细介绍了Redis的主从复制配置、原理(包括全量复制和增量复制)以及如何搭建一主二从的Redis集群,同时还探讨了Redis哨兵模式的概念、配置文件、以及如何配置一主二从三哨兵的Redis哨兵模式,以实现高可用性。