首页 > 解决方案 > Redis 默认会触发复制吗?

问题描述

在我redis.conf的副本部分下,我有:

################################# REPLICATION #################################
# replicaof <masterip> <masterport>
# masterauth <master-password>
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
# repl-backlog-size 1mb
# repl-backlog-ttl 3600
replica-priority 100
# replica-announce-ip 5.5.5.5
# replica-announce-port 1234

所以......我的印象是我没有为我的 redis 服务器设置某种 REPLICA。

但是,每次我重新启动我的 redis 服务器时,我都可以在 8 分钟后看到这些日志:

1:S 17 Jan 2020 21:29:12.618 * Before turning into a replica, using my master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
1:S 17 Jan 2020 21:29:12.618 * REPLICAOF XX.XXX.XX.XXX:8888 enabled (user request from 'id=2997 addr=YY.YYY.YYY.YYY:41454 fd=8 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=47 qbuf-free=32721 obl=0 oll=0 omem=0 events=r cmd=slaveof')
1:S 17 Jan 2020 21:29:12.621 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:12.622 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:12.662 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:12.702 * Master replied to PING, replication can continue...
1:S 17 Jan 2020 21:29:12.783 * Trying a partial resynchronization (request 6b69a379015e67268cc1c453b74594bfb7475b8e:1).
1:S 17 Jan 2020 21:29:12.823 * Full resync from master: ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ:1
1:S 17 Jan 2020 21:29:12.823 * Discarding previously cached master state.
1:S 17 Jan 2020 21:29:12.824 * MASTER <-> REPLICA sync: receiving 55640 bytes from master
1:S 17 Jan 2020 21:29:12.903 * MASTER <-> REPLICA sync: Flushing old data
1:S 17 Jan 2020 21:29:12.904 * MASTER <-> REPLICA sync: Loading DB in memory
1:S 17 Jan 2020 21:29:12.904 # Wrong signature trying to load DB from file
1:S 17 Jan 2020 21:29:12.904 # Failed trying to load the MASTER synchronization DB from disk
1:S 17 Jan 2020 21:29:13.628 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:13.629 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:13.665 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:13.700 # Error condition on socket for SYNC: Connection reset by peer
1:S 17 Jan 2020 21:29:14.634 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:14.635 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:14.670 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:14.721 # Error condition on socket for SYNC: Broken pipe
1:S 17 Jan 2020 21:29:15.649 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:15.649 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:15.691 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:15.733 # Error condition on socket for SYNC: Broken pipe
1:S 17 Jan 2020 21:29:16.654 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:16.655 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:16.691 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:16.726 # Error reply to PING from master: '-Reading from master: Resource temporarily unavailable'
1:S 17 Jan 2020 21:29:17.660 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:17.660 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:17.701 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:17.743 # Error condition on socket for SYNC: Connection reset by peer
1:S 17 Jan 2020 21:29:18.665 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:18.666 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:18.708 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:18.749 # Error condition on socket for SYNC: Broken pipe
1:S 17 Jan 2020 21:29:19.672 * Connecting to MASTER XX.XXX.XX.XXX:8888
1:S 17 Jan 2020 21:29:19.673 * MASTER <-> REPLICA sync started
1:S 17 Jan 2020 21:29:19.712 * Non blocking connect for SYNC fired the event.
1:S 17 Jan 2020 21:29:19.752 # Error reply to PING from master: '-Reading from master: Resource temporarily unavailable'
1:S 17 Jan 2020 21:29:19.827 * Module 'system' loaded from ./red2.so
1:M 17 Jan 2020 21:29:19.924 # Setting secondary replication ID to 6b69a379015e67268cc1c453b74594bfb7475b8e, valid up to offset: 1. New replication ID is 22584ed3770a10c7b93a4433ded8e8a0be22b02f
1:M 17 Jan 2020 21:29:19.924 * MASTER MODE enabled (user request from 'id=2997 addr=YY.YYY.YYY.YYY:41454 fd=8 name= age=7 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=34 qbuf-free=32734 obl=0 oll=0 omem=0 events=r cmd=slaveof')
1:M 17 Jan 2020 21:29:21.451 * Module system unloaded

我不是安全专家,所以我仍然怀疑我的 redis 服务器是否已被破坏,或者这是否只是 redis 配置错误:这就是我首先在这里发布的原因。

那么默认情况下是否有一些 redis 进程可能具有我不知道的这种 MASTER-REPLICA 行为?如果是,如何禁用它?

PS:到目前为止,我为redis设置了密码,似乎解决了这个问题。

标签: redis

解决方案


推荐阅读