您的位置:首页 > 数据库 > Redis

Redis复制

2017-02-11 19:37 239 查看
1、现在有两个redis,172.16.2.16为master,10.65.200.202为salve
2、在slave端修改配置项 salveof,如下:
slaveof 172.16.2.16 6379
3、在这种情况下,master端的修改,会同步到slave端。
4、但是slave端不能执行写操作,如下:
127.0.0.1:6379> get name
"andy"
127.0.0.1:6379> set name bill
(error) READONLY You can't write against a read only slave.
原因是:如果slave可以写操作,就会导致主从数据不一致。因此,默认配置slave只能读操作。
5、当然,也可以配置写操作,如下:
slave-read-only no
但是,slave端的修改,不会同步到master端。
6、mysql是支持主主复制的,也就是两个设备互为主从。如果把两个redis设置为互为主从,行不行?
目前的redis版本不支持互为主从。如果两个redis配置成互为主从,redis服务报错,如下:
Master does not support PSYNC or is in error state (reply: -ERR Can't SYNC while not connected with my master)
7、也就是说,redis要实现主主复制,需要应用层管理。
A仅仅作为master,B设置为A的salve。
在某个条件下,B不再作为A的slave,仅仅设置为master,同时A设置为B的slave。
注意:这里redis主主复制是指任一时刻只有一个方向的复制,并不是完全意义的主主复制,完全意义的主主复制是同时两个方向。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: