Redis主从模式(一):基本介绍与搭建

一、主从模式:

主从模式主要解决2个问题:

  1. Redis单点故障:分布式环境下不允许出现单点,也即当某个结点挂了,得有替补接上。
  2. 读写分离:Redis虽然是一个高性能的数据库,但单机总有瓶颈,所以增加从库来分担读压力。主库来接收写命令,各个从库分担大量的读请求。

二、搭建主从:

通过info replication 可以查看当前结点的身份信息,与当前结点的从库信息。

建立主从关系是在从库上进行配置的:
每个启动的Redis结点,默认是一个主库(master)。可以通过下面方式,让当前从库成为某个结点的从库(slave):

  1. 通过在redis.conf里配置SALVEOF 主节点IP 主节点端口,随时Redis的启动而建立联系;
  2. 通过在启动Redis时,在 redis-server启动命令后,加上SALVEOF 主节点IP 主节点端口命令指定;
  3. 在启动Redis后,通过SALVEOF 主节点IP 主节点端口命令指定。

断开主从关系:
从库执行salveof no one后,从库断开与主库的连接,然后将自己变回master。
断开从库后,从库之前从主库同步的数据不会清除。

切换主从关系:
从库再次执行SALVEOF 主节点IP 主节点端口后,将与旧的主库端来连接,并清除从旧的主库那里同步来的数据。然后与新的主库建立连接,开始同步新的主库数据。

注意:

  1. 安全性: 对于数据重要的主节点,会配置requirepass设置连接时的密码,从结点必须要配置masterauth参数来设置密码。
  2. 只读: 由于数据只会从主库同步到从库。从结点应该设置为只读,否则从结点也接收写命令,只会造成主从数据不一致。使用salve-of-readonly=yes进行配置。
  3. 传输延迟: repl-disable-tcp-nodelay来控制传输延迟,默认是关闭的。
    关闭时,主库接收到新的写命令,无论大小都会即时同步到从库。
    开启时,主库会把较小的TCP数据包合并后,一起发送。

三、主从拓扑结构:

  1. 一主多从: 一个主节点直接连接多个从结点。
    缺点:在写并发略高后,主库不仅要承受接收客户端的写命令,还要同步多个从库,这时多个从库的同步反而影响了主库的性能。

  2. 树状拓扑: 针对上面的缺陷,假设本来主库有10个从库,现在让主库只直接相连2个从库,这2个从库再作为主库(不开启接收写命令,只做中间同步的缓冲),将剩下的结点作为自己的从库。这样就减少了顶层主库(真正接收写命令)同步带来的消耗。
    缺点: 降低了主从间数据一致性的延迟。

参考书籍:
《Redis开发与运维》

猜你喜欢

转载自blog.csdn.net/qq_40728028/article/details/106586070