redis中配置主从复制非常简单,有两种方式
第一种是修改redis.conf配置文件
# slaveof <masterip> <masterport> -- 放开这句的注释,填写上master的ip和port
如果master有密码的话,在下面这句配置master的密码
# masterauth <master-password>
重启slave服务,可以看到如下输出
21080:S 05 May 22:32:15.220 * Connecting to MASTER 127.0.0.1:6379
21080:S 05 May 22:32:15.221 * MASTER <-> SLAVE sync started
21080:S 05 May 22:32:15.221 * Non blocking connect for SYNC fired the event.
21080:S 05 May 22:32:15.221 * Master replied to PING, replication can continue...
21080:S 05 May 22:32:15.221 * Trying a partial resynchronization (request 19832def39059f8b98713d79cf098b74c76f0b7a:281).
21080:S 05 May 22:32:15.221 * Successful partial resynchronization with master.
21080:S 05 May 22:32:15.221 * MASTER <-> SLAVE sync: Master accepted a Partial Resynchronization.
代表配置成功
第二种是在salve客户端执行命令
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
这时候可以看到slave服务端会自动输出跟上面相同的内容,就配置成功了
我们进行测试
在master的客户端上写入数据
127.0.0.1:6379> set sync_key 1
OK
从salve客户端进行get操作,可以看到数据可以正确的取出
127.0.0.1:6380> get sync_key
"1"
执行sync命令可以手动进行同步数据
由于配置文件中,默认slave服务端只能进行查询的操作,所以在slave命令行中执行写的操作会提示错误
127.0.0.1:6380> set haha1 1
(error) READONLY You can't write against a read only slave.