创建一个最简化的复制系统,在一个服务器上启动两个redis 实例。
- redis-server 默认监听6379端口
- redis-server --port 6380 --slaveof 127.0.0.1 6379, 加上slaveof参数启动redis作为从数据库。
此时主数据库的任何数据变化都会自动同步到从数据库中。
除了通过配置文件或命令行参数设置slaveof参数,还可以在运行时使用slaveof参数修改。
对于从数据库来说,slaveof no one 可以停止当前数据库接受其他数据库的同步,并转换为主数据库。
原理
只要执行复制就会进行快照,及时关闭了RDB的持久化(如删除所有save)。
从数据库持久化
增量复制
复制原理是当主从数据库连接断开后,从数据库会发送SYNC命令重新进行一次完整复制操作,即使断开期间数据库变化很小(甚至没有)也需要将数据库中的所有数据重新快照并传送一次,实现方式不太理想。
部分原理摘自《Redis入门指南》