Redis-18Redis主从同步

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis-18Redis主从同步

概述


尽管 Redis 的性能很好,但是有时候依旧满足不了应用的需要,比如过多的用户进入主页,导致 Redis 被频繁访问,此时就存在大量的读操作。显然单靠一台 Redis 服务器是完全不够用的 当主服务器不能正常工作的时候,我们希望从服务器代替原来的主服务器,作为灾备,以保证系统可以继续正常的工作 。


主从同步


所谓主从架构设计的思路大概是:


在多台数据服务器中,只有一台主服务器,而主服务器只负责写入数据,不负责让外部程序读取数据。

存在多台从服务器,从服务器不写入数据,只负责同步主服务器的数据,并让外部

程序读取数据。

主服务器在写入数据后,即刻将写入数据的命令发送给从服务器,从而使得主从数

据同步。

应用程序可以随机读取某一台从服务器 的数据, 这样就分摊了读数据的压力。

当从服务器不能工作的时候,整个系统将不受影响: 当主服务器不能工作的时候,

可以方便地从从服务器中选举一台来当主服务器 。

这只是一种大概的思路, 每一种数据存储的软件都会根据其自身的特点对上面的这几点思路加以改造,但是万变不离其宗 , 只要理解了这几点就很好理解 Redis 的复制机制。


20181005222213825.png


这个时候读数据就可以随机从从服务器上读取,当从服务器是多台的时候,那么单台服务器的压力就大大降低了,这十分有利于系统性能的提高, 当主服务器出现不能工作的情况时,也可以切换为其中的一台从服务器继续让系统稳定运行,所以也有利于系统运行的安全性。当然由于 Redis 自身具备的特点,所以其也有实现主从同步的特殊方式。


Redis主从同步配置


对 Redis 进行主从同步的配置分为主机与从机,主机是一台,而从机可以是多台 .


主服务器


首先,明确主机。当你能确定哪台机子是主机的时候,关键的两个配置是 dir和dbfilename 选项, 当然必须保证这两个文件是可写的。


对于 Redis 的 默认配置而言, dir 的默认值为“./”,而对于 dbfilename 的默认值为“ dump.rbd ”。换句话说,默认采用 Redis当前目录的 dump.rbd 文件进行同步。


对于主机而言,只要了解这多信息,很简单 。


从服务器


其次 , 在明确了从机之后,进行进一步配置所要关注的只有 slaveof这个配置选项,它的配置格式是 :

slaveof server port


其中 server 代表主机,port代表端口。


当从机 Redis 服务重启 时,就会同步对应主机的数据了。当不想让从机继续复制主机的数据时,可以在从机的 Redis 命令客户端发送slaveof no one 命令,这样从机就不会再接收主服务器的数据更新了。


又或者原来主服务器已经无法工作了,而你可能需要去复制新的主机,这个时候执行 slaveof sever port 就能让从机复制另外一台主机的数据了。


在实际的 Linux 环境中,配置文件 redis.conf 中还有一个 bind 的配置 , 默认为 127 .0 .0.1,也就是只允许本机访 问 ,把它修改为 bind 0.0.0.0,其他的服务器就能够访 问了 .


Redis主从同步过程



20181005233004224.png



无论如何要先保证主服务器的开启,开启主服务器后,从服务器通过命令或重启配置项可以同步到主服务器。

当从服务器启动时,读取同步的配置,根据配置决定是否使用当前数据响应客户端,然后发送 SYNC 命令。当主服务器接收到同步命令的时候,就会执行 bgsave 命令备份数据,但是主服务器并不会拒绝客户端的读/写,而是将来自客户端的写命令写入缓冲区 。从服务器未收到主服务器备份的快照文件的时候,会根据其配置决定使用现有数据响应客户端或者拒绝。

当 bgsave 命令被主服务器执行完后,开始向从服务器发送备份文件,这个时候从服务器就会丢弃所有现有的数据,开始载入发送的快照文件。

当主服务器发送完备份文件后,从服务器就会执行这些写入命令。此时就会把bgsave 执行之后的缓存区内的写命令也发送给从服务器,从服务完成备份文件解析,就开始像往常一样,接收命令,等待命令写入。

缓冲区的命令发送完成后,当主服务器执行一条写命令后,就同时往从服务器发送同步写入命令,从服务器就和主服务器保持一致了。而此时当从服务器完成主服务器发送的缓冲区命令后,就开始等待主服务器的命令了。

以上 5 步就是 Redis 主从同步的过程。


只是在主服务器同步到从服务器的过程中,需要备份文件,所以在配置的时候一般需要预留 一些内存空间给主服务器,用以腾出空间执行备份命令。 一般来说主服务器使用50%~65%的内存空间 ,以为 主从复制留下可用的内存空间。


缺点


主从切换技术的方法是: 当主服务器右机后,需要手动把一台从服务器切换为主从服务器,这就需要人工干预,既费时费力,汪会造成一段时间内服务不可用,更多的时候,我们优先考虑Redis的哨兵模式。


相关实践学习
基于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
相关文章
|
2月前
|
存储 缓存 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多路复用模型
|
3月前
|
缓存 运维 NoSQL
Redis主从模式部署
Redis主从模式部署
50 4
|
3月前
|
缓存 NoSQL Redis
Redis主从架构
当看到图示中红色标记的,就代表从节点挂载成功了。
26 0
|
3天前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
24 2
|
2月前
|
监控 NoSQL Ubuntu
|
3月前
|
NoSQL Java 关系型数据库
考考你Redis主从,就知道有没深入Redis
大家好,我是南哥。一个对Java程序员进阶成长颇有研究的人,今天继续给大家带来新的一篇Java进阶指南。如果是单机版的数据库,像MySQL、Redis,看起来实现并不复杂。只要支持保存一条数据,同时要能够查询出来。但如果是多机版的数据库呢,各个节点的配合联调是比较复杂的过程,看起来就不是那么简单喽。要考你对Redis深不深入理解,问问Redis多机版相关的问题就知道了。我们今天就来指南下Redis主从架构。
考考你Redis主从,就知道有没深入Redis
|
2月前
|
安全 NoSQL Java
网络安全-----Redis12的Java客户端----客户端对比12,Jedis介绍,使用简单安全性不足,lettuce(官方默认)是基于Netty,支持同步,异步和响应式,并且线程是安全的,支持R
网络安全-----Redis12的Java客户端----客户端对比12,Jedis介绍,使用简单安全性不足,lettuce(官方默认)是基于Netty,支持同步,异步和响应式,并且线程是安全的,支持R
|
4月前
|
存储 缓存 NoSQL
Redis与数据库同步指南:订阅Binlog实现数据一致性
本文由开发者小米分享,探讨分布式系统中的一致性问题,尤其是数据库和Redis一致性。文章介绍了全量缓存策略的优势,如高效读取和稳定性,但也指出其一致性挑战。为解决此问题,提出了通过订阅数据库的Binlog实现数据同步的方法,详细解释了工作原理和步骤,并分析了优缺点。此外,还提到了异步校准方案作为补充,以进一步保证数据一致性。最后,提醒在实际线上环境中需注意日志记录、逐步优化和监控报警。
220 3
|
4月前
|
负载均衡 NoSQL 网络协议
Redis(主从模式)
Redis(主从模式)
60 1
|
4月前
|
监控 NoSQL Redis
Redis分区容错秘诀:解密主从模式
Redis主从模式用于提高高可用性、负载均衡和数据备份。主节点处理写入,从节点复制数据并分担读取,实现故障切换和读写分离。配置主从关系后,从节点连接主节点进行全量和增量复制。当主节点故障,从节点可接管服务。然而,主从延迟和数据不一致性是挑战,可通过优化网络、使用Sentinel和Redis Cluster等解决。关注“软件求生”获取更多内容。
174 1
Redis分区容错秘诀:解密主从模式
下一篇
DDNS