背景
单节点服务器的问题问题:
- 可用性:如果这个机器挂了,意味着服务就中断了.
- 性能:支持的并发量也是比较有限的.
解决思路:引入分布式系统
- 分布式系统中,往往需要多个服务器来部署 redis 服务,从而构成 redis 集群
- 此时就可以让这个集群给整个分布式系统中的其他服务,提供更稳定 / 更高效的数据存储功能.
主从复制
- 主从复制是一种数据同步机制,用于在数据库之间实现数据的自动复制。
- 在主从复制中,一个数据库(主数据库)被定义为主节点,负责接收和处理所有的写操作;
- 而其他的数据库(从数据库)被定义为从节点,负责接收和复制主节点的数据更新。
- 如果是挂掉了某一个从节点,没什么影响,此时继续从主节点或者其他从节点读取数据,效果是完全一样的.
- 如果改掉的是主节点,是有一定影响的,因为主节点还负责 “写数据”
主从复制的工作流程
- 主节点接收到一个写操作。
- 主节点将该写操作记录到其日志文件(二进制日志)中。
- 通过网络,主节点将该写操作发送给所有的从节点。
- 从节点收到该写操作后,将其记录到其日志文件(中继日志)中。
- 从节点执行该写操作,并将执行结果返回给主节点。
- 主节点将该写操作及执行结果记录到其日志文件中。
- 从节点将执行结果发送给客户端。
通过主从复制,可以实现以下几个目的:
- 提高数据库的读性能:从节点可以处理读操作,减轻主节点的负载。
- 提高数据库的可用性:当主节点发生故障时,可以快速切换到从节点,保证系统的正常运行。
- 数据备份:从节点可以作为主节点的备份,以防止数据丢