从库:
- [redis@albert src]$ ./redis-cli -p 6380
- 127.0.0.1:6380>
- 127.0.0.1:6380>
- 127.0.0.1:6380> INFO replication
- # Replication
- role:slave
- master_host:127.0.0.1
- master_port:6379
- master_link_status:up
- master_last_io_seconds_ago:6
- master_sync_in_progress:0
- slave_repl_offset:252
- slave_priority:100
- slave_read_only:1
- connected_slaves:0
- master_replid:fc71b19242e8145254ba7751d346a8f4bb4c53c6
- master_replid2:0000000000000000000000000000000000000000
- master_repl_offset:252
- second_repl_offset:-1
- repl_backlog_active:1
- repl_backlog_size:1048576
- repl_backlog_first_byte_offset:1
- repl_backlog_histlen:252
主库:
- [redis@albert src]$ ./redis-cli -p 6379
- 127.0.0.1:6379> INFO replication
- # Replication
- role:master
- connected_slaves:1
- slave0:ip=127.0.0.1,port=6380,state=online,offset=364,lag=0
- master_replid:fc71b19242e8145254ba7751d346a8f4bb4c53c6
- master_replid2:0000000000000000000000000000000000000000
- master_repl_offset:364
- second_repl_offset:-1
- repl_backlog_active:1
- repl_backlog_size:1048576
- repl_backlog_first_byte_offset:1
- repl_backlog_histlen:364
做一个同步验证
主库发送:
- 127.0.0.1:6379> set kebo 24
- OK
从库接收:
- 127.0.0.1:6380> get kebo
- "24"
Redis的复制功能中,不仅有主从复制,还存在从从复制。从从同步是为了减轻主节点同步的压力,也类似Oracle ADG中的级联设置。
下面详细介绍Redis实现复制的原理过程
场景一,数据初始化
当从数据库启动后,会向主数据库发送SYNC命令,同时主数据库接收到SYNC命令后开始在后台进行快照(持久化),将保存的快照数据发送到从数据库,同时在执行快照期间缓存命令,同时发送到从数据库,这个过程就是数据初始化。初始化完成后,主数据库接收到命令缓存都会同步从数据库,这样形成基本的数据一致性。
从库请求sync同步:
- 33570:S 26 Aug 2019 11:54:48.918 * Ready to accept connections
- 33570:S 26 Aug 2019 11:54:48.918 * Connecting to MASTER 127.0.0.1:6379
- 33570:S 26 Aug 2019 11:54:48.918 * MASTER <-> REPLICA sync started
- 33570:S 26 Aug 2019 11:54:48.918 * Non blocking connect for SYNC fired the event.
- 33570:S 26 Aug 2019 11:54:48.918 * Master replied to PING, replication can continue...
- 33570:S 26 Aug 2019 11:54:48.918 * Trying a partial resynchronization (request fc71b19242e8145254ba7751d346a8f4bb4c53c6:2533).
- 33570:S 26 Aug 2019 11:54:48.920 * Full resync from master: b9e0f41a523e078a6a88ae274f204777775ab4dc:0
- 33570:S 26 Aug 2019 11:54:48.920 * Discarding previously cached master state.
- 33570:S 26 Aug 2019 11:54:49.003 * MASTER <-> REPLICA sync: receiving 188 bytes from master
- 33570:S 26 Aug 2019 11:54:49.003 * MASTER <-> REPLICA sync: Flushing old data
- 33570:S 26 Aug 2019 11:54:49.003 * MASTER <-> REPLICA sync: Loading DB in memory
- 33570:S 26 Aug 2019 11:54:49.004 * MASTER <-> REPLICA sync: Finished with success
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|