Redis学习目录总结12-Redis主从复制的意义和作用

182 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

redis常见的使用模式

我们在使用缓存集群的时候,最常见的高可用模式是主-从模式,如果对数据丢失有降级补全的场景的话也会使用到单机主模式,对于数据丢失容忍度低的话偶尔也会用到1主-多从的模式。 那么我们以最常见的主-从模式来作为例子,讲一下Redis的主从数据复制传递的过程。

redis 主从复制的意义以及作用

主从复制

Redis主从复制,指的是将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点分片(master),后者称为从节点分片(slave);而且数据的复制是单向的,只能由主节点到从节点。

默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

主从复制的作用

  • 数据热备:主从复制实现了数据的热备,相当于mysql的从库。
  • 高可用:当主节点出现问题时,可以直接切换到从节点来提供服务,实现快速的故障恢复
  • 负载均衡:在主从复制的基础上,配合读写分离,写主节点,读从节点(适用于 业务需要容忍主从同步导致的数据延迟不一致,在写少读多的场景下,通过多个从节点分担读,从而提高Redis服务器的并发量

如何开启主从复制

建立复制

主从复制的开启,完全是在从节点发起的;不需要我们在主节点做任何事情。

从节点开启主从复制,有3种方式:

(1)启动命令

redis-server启动命令后加入 --slaveof

(2)客户端命令

Redis服务器启动后,直接通过客户端执行命令:slaveof ,则该Redis实例成为从节点。

(3)配置文件

在从服务器的配置文件中加入:slaveof

总结思考

我们自己的系统,在使用redis的时候,不同的业务使用到了不同的模式,仅供参考

打标系统

打标系统因为每天的数据都要从db读取到redis中,所以一开始基于成本和业务场景,选择了单机主的模式,并没有挂从节点进行数据热备。如果有问题的话,重新写一遍缓存即可。

商品系统

商品系统采用的是常见的主-从模式,写都在主分片,读根据业务场景区分,涉及状态的读从主节点读取,保证数据一致,非核心业务读从。

库存系统

库存系统采用的主-从模式,读、写都在主分片,因为对数据状态一致性的要求比较高。接受不了ms级别的延迟,因为会导致库存数量不一致