redis主从和哨兵原理

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

redis主从原理

一、全量复制

主从全量复制:核心:将主节点最新的rdb文件和缓冲区的数据同步给从节点
1、从节点首次启动,进行全量同步。向主节点发送psync命令
2、主节点收到psync命令后,执行bgsave生成最新的rdb快照数据
3、主节点将rdb文件发送给从节点
4、在第2步中主节点生成rdb快照的时候(假如生成快照时间1s,期间有100条命令进入到主节点)那么发送给从节点的rdb文件不是最新的(没有那100条命令)
5、主节点有一个缓冲区,专门存放最近的命令(默认1M)。也就是说主节点不仅给从节点发送rdb快照,同时也将缓冲区的数据发送给从节点
6、将rdb和缓冲区的数据合并生成一个完整的rdb并替换从节前之前的快照文件

疑问:
1、redis没开启rdb怎么进行同步?
答案:跟持久化方式没有关系,同步是主节点接受到从节点的psync命令后,主动执行bgsave生成的rdb【主动生成主节点的全量数据rdb】
2、什么时间进行主从复制?从节点首次启动的时候

二、部分复制

1、从节点连接断开,重新连主节点
2、向主节点发送psync(offset)命令,offset代表从节点的rdb文件中最后一条命令的偏移量
3、如果从节点发送的offset在主节点的缓冲区中,那么master会将缓存中从slave的offset之后的数据一次性同步给从节点,否则会全量同步

三、主从切换

当master挂了,需要手动修改很多,修改slave的replicaof 新的主节点,然后重启。
还要改java程序的ip。需要运维进行master挂了自动切换master

redis哨兵原理

哨兵不提供读写服务,主要用来监控redis示例节点
1、客户端第一次访问哨兵,哨兵拿到master节点后告知客户端
2、客户端访问master节点,如果master节点挂了则会在多个slave节点中选择一个新的master节点,此时哨兵已监控到master节点的变化,然后告诉客户端新的master节点ip,客户端接收到新的master的ip,下次访问则会访问新的master的ip

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4月前
|
缓存 NoSQL Linux
redis的原理(三)
redis的原理(三)
redis的原理(三)
|
3月前
|
监控 NoSQL 算法
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
191 4
|
3月前
|
设计模式 NoSQL 网络协议
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
50 2
|
3月前
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
81 1
|
3月前
|
NoSQL 关系型数据库 MySQL
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
466 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
|
4月前
|
存储 缓存 NoSQL
redis的原理(四)
redis的原理(四)
|
4月前
|
存储 缓存 NoSQL
redis的原理(二)
redis的原理(二)
|
3月前
|
消息中间件 NoSQL Kafka
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
大数据-116 - Flink DataStream Sink 原理、概念、常见Sink类型 配置与使用 附带案例1:消费Kafka写到Redis
226 0
|
存储 NoSQL 网络安全
Redis安装(单机、主从、哨兵、集群)
Redis安装(单机、主从、哨兵、集群)
174 1
|
8月前
|
缓存 NoSQL 应用服务中间件
分布式缓存之Redis(持久化、主从、哨兵、分片集群)
分布式缓存之Redis(持久化、主从、哨兵、分片集群)