In [37]: r2.set('key', 'value')
ReadOnlyError: You can't write against a read only slave.
设置slave为readonly,发现报错
zb@ubuntu:~/codes/test$ redis-cli -h 127.0.0.1 -p 6379 set slave-read-only no
(error) READONLY You can't write against a read only slave.
需要关闭slave的slave特性, 将其升级为主节点
zb@ubuntu:~/codes/test$ redis-cli -h 127.0.0.1 -p 6379 slaveof NO ONE
OK
zb@ubuntu:~/codes/test$ redis-cli -h 127.0.0.1 -p 6379 set slave-read-only no
OK
升级为主节点后,继续向slave写入:
In [38]: r2.set('key', 'value')
Out[38]: True 5. 重启master, 如果将slave升级为master, 此时master与slave已经隔离, 都作为主节点存在(注意此时的主节点是没有数据的)
In [41]: r1.get('key')
In [42]: 6. 拷贝R2的dump数据到R1后重启:
In [43]: r1.get('key')
Out[43]: 'value' 7. 从新将R2设置为R1的slave(slave默认配置):
向slave写入:
In [45]: r2.set('key2', 'value')
ReadOnlyError: You can't write against a read only slave. 8. 如果将slave-read-only 属性写到配置文件中:
可以向slave写入数据,但是不会同步到master