51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Redis集群-主从复制搭建

主机规划

|----------------|--------|--------| | 主机IP | 角色 | 端口 | | 192.168.77.145 | master | 6379 | | 192.168.77.146 | slave | 6379 | | 192.168.77.147 | slave | 6379 |

redis安装

Redis单实例标准化规划及部署

配置主节点

主节点无需做任何配置,按照单实例标准化规划部署即可。

配置从节点

方式一:通过修改配置文件指定主节点

在redis配置文件中使用replicaof将该节点设置为从服务器,如将192.168.77.147:6379节点配置为192.168.77.145:6379主节点的从节点:

[root@dbc ~]# vim /opt/redis/conf/redis.conf 
 ......
 replicaof 192.168.77.145 6379
 #此外还需配置masterauth安全认证,主要是针对master对应的slave节点设置的,在slave节点数据同步的时候用到
 masterauth 123456

说明:在5.0.0之前的版本中使用SLAVEOF作为复制命令

配置完成后重启redis服务。

方式二:命令行通过replicaof命令设置从服务器

在redis配置文件中使用replicaof将该节点设置为从服务器,如将192.168.77.146:6379节点配置为192.168.77.145:6379主节点的从节点:

127.0.0.1:6379> replicaof 192.168.77.145 6379
 OK
 127.0.0.1:6379> CONFIG set masterauth 123456
 OK
 127.0.0.1:6379> CONFIG REWRITE
 OK

注意:在命令行使用replicaof host port方式配置从节点一定要记得配置masterauth,因为在进行主从复制时需要进行身份验证,然后使用CONFIG REWRITE将配置落盘到配置文件中。

验证

主节点验证,可以看到当前role为master,有2个从节点。

 [root@dba ~]# redis-cli -a 123456 info replication
 # Replication
 role:master
 connected_slaves:2
 slave0:ip=192.168.77.146,port=6379,state=online,offset=4718,lag=1
 slave1:ip=192.168.77.147,port=6379,state=online,offset=4718,lag=1
 master_failover_state:no-failover
 master_replid:320bbe6cb606c948e80ba0d20e0e8b53f3fc1675
 master_replid2:ce5017ebd60f1b313a11972194a74478093ed0c5
 master_repl_offset:4718
 second_repl_offset:4719
 repl_backlog_active:1
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:2059
 repl_backlog_histlen:2660

从节点1验证,可以看到当前role为slave,主节点为192.168.77.145:6379

 [root@dbb ~]# redis-cli -a 123456 info replication
 # Replication
 role:slave
 master_host:192.168.77.145
 master_port:6379
 master_link_status:up
 master_last_io_seconds_ago:3
 master_sync_in_progress:0
 slave_read_repl_offset:5446
 slave_repl_offset:5446
 slave_priority:100
 slave_read_only:1
 replica_announced:1
 connected_slaves:0
 master_failover_state:no-failover
 master_replid:320bbe6cb606c948e80ba0d20e0e8b53f3fc1675
 master_replid2:ce5017ebd60f1b313a11972194a74478093ed0c5
 master_repl_offset:5446
 second_repl_offset:4719
 repl_backlog_active:1
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:2157
 repl_backlog_histlen:3290

从节点2验证,可以看到当前role为slave,主节点为192.168.77.145:6379

[root@dbc ~]# redis-cli -a 123456 info replication
 # Replication
 role:slave
 master_host:192.168.77.145
 master_port:6379
 master_link_status:up
 master_last_io_seconds_ago:0
 master_sync_in_progress:0
 slave_read_repl_offset:3276
 slave_repl_offset:3276
 slave_priority:100
 slave_read_only:1
 replica_announced:1
 connected_slaves:0
 master_failover_state:no-failover
 master_replid:ce5017ebd60f1b313a11972194a74478093ed0c5
 master_replid2:0000000000000000000000000000000000000000
 master_repl_offset:3276
 second_repl_offset:-1
 repl_backlog_active:1
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:3277
 repl_backlog_histlen:0

取消复制

在使用REPLICAOF命令或者replicaof配置选项将一个服务器设置为从服务器之后,可以通过执行replicaof no one命令让从服务器停止复制,重新变回主服务器,且服务器在停止复制之后不会清空数据库,会继续保留复制产生的所有数据。

赞(0)
未经允许不得转载:工具盒子 » Redis集群-主从复制搭建