生产环境中,如果对可用性、可靠性要求较高,则需要引入Redis的集群方案。目前主流的Redis集群方案有三种 :
- 主从复制
- 哨兵模式
- Cluster集群
1. 主从复制模式
主从复制模式中包含一个主数据库实例与一个或多个从数据库实例,客户端可对主数据库进行读写操作,对从数据库进行读操作主数据库写入的数据会实时自动同步给从数据库
1.1 主从复制机制原理
- 从服务器开机之后发送一个SYNC命令给主服务器
- 主服务器接收到SYNC命令之后,整理数据文件快照,并将此阶段的写命令写入到缓存区
- 主服务器将文件快照发送给从服务器,从服务器接收到数据文件快照之后加载数据
- 主服务器将缓冲区保存的写命令发送给从服务器执行,主从复制初始化完成
- 主服务器每执行一次写命令就发送给从服务器执行
1.2 主从复制优缺点
1.2.1 优点
- 主服务器能自动将数据同步到从服务器实现读写分离,减轻了主服务器的读压力
- 主,从服务器同步是以非阻塞的方式进行的,此期间客户端执行其他操作
1.2.1 缺点
- 自动容错与恢复功能差;主,从服务器宕机会导致客户端请求失败,需要等待机器重启或手动切换客户端IP才能恢复
- 主服务器宕机,会导致数据不一致的问题
- 难以支持在线扩容,Redis的容量受限于单机配置