Redis的复制特性
复制技术额可以使数据库的读写操作分散运行在不同CPU上独立服务器上。
数据库复制是数据库之间的单向的信息传递的行为,由复制方和被复制方组成。复制方和被复制方建立网络连接。复制方一般主动向被复制方发送数据,复制方接收并存储数据。目的是为了复制方和被复制方数据保持一致
Redis复制方式:主从模式,从从模式
Redis通过配置多个Redis实例独立运行,定向复制,形成Redis集群;master负责写,slave负责读(达到读写分离的目的)
复制的优点
通过配置多个Redis实例,把数据备份不同实例上。主库专注于写;从库专注于读
-
高可用性
在Redis的集群中,如果master宕机,slave就可以代替master的角色。这样就会使整个Redis集群有很强的可用性。也使Redis足够的安全
-
高性能
在Redis中读写分离,一方面把读的请求分散到其他的实例上,可以大大减少master服务器的压力;另一方面slave专注于读的请求,从而提高整体的响应的读取速度
-
水平扩展性
可以根据实际案例,通过增加slave的数量来水平增强整体集群的查询能力
复制的缺点
虽然提供了高性能的解决方案,但是也引入了分布式计算的性能损耗
- 数据一致性的问题;要保证master写入的数据要及时同步到slave上
- 读写分离的操作加大了编程难度
复制的过程
- slave向master发送sync命令
- master生成RDB持久化文件
- master把RDB传给slave
- master发送完RDB后,向slave发送缓存的命令
- master把增量数据发给slave