单点问题:即一个服务器程序,只部署在一个物理服务器上
这就存在可用性,并发量等问题,如果这个机器挂了,那么服务就中断了;并且一台服务器的硬件资源是有限的,这导致这个服务器支持的并发量也是有限的;
因此就引入了分布式系统,使用多个物理服务器来部署服务器程序,分布式系统存在以下几种模式
- 主从模式
- 主从 + 哨兵模式
- 集群模式
本文主要讲述主从模式
一、什么是主从模式
在若干个 Redis 服务器节点中,有的是主节点,有的是从节点;每个从节点只能有一个主节点,一个主节点可以有多个从节点;从节点就是主节点的副本,从节点要同步主节点上的所有数据,同时,当主节点对数据有任何的修改,也会同步到从节点上,从节点不允许修改数据;
配置了主从模式后,比较有效的解决了可用性问题,一台服务器挂了,还有另外的服务器可以支撑服务,通过负载均衡也可以有效的处理高并发问题;
二、配置 Redis 主从模式
参与主从复制的 Redis 服务器节点划分为主节点(master)和从节点(slave);主从复制的数据流是单向的,只能由主节点到从节点,配置复制的方式有以下三种:
- 在配置文件中加入 slaveof {masterHost} {masterPort} 随 Redis 启动生效
- 在 redis-server 启动命令时加入 --slaveof {masterHost} {masterPort} 生效
- 直接使用 redis 命令:slaveof {masterHost} {masterPort} 生效,也可以使用 slave no one 断开与主节点的主从关系;
以 1 为例,配置主从模式(1 个主节点,2 个从节点)
修改配置,修改的是从节点的配置,主节点的配置不用修改
在 /etc/redis 目录下复制 redis 的配置文件到一个文件夹下,由于要配置两个从节点,所以需要拷贝 2 份,然后分别修改配置文件中的端口号,并确保以下选项(以一个从节点为例):
此时在配置文件末尾添加 slaveof 选项,slaveof 主节点的 ip,主节点的端口号