单机下搭建redis的主从模式(单节点主从模式)出现问题:
16768:S 19 Sep 2023 13:14:16.706 * Connecting to MASTER 192.168.150.101:7001
16768:S 19 Sep 2023 13:14:16.707 * MASTER <-> REPLICA sync started
16768:S 19 Sep 2023 13:14:37.708 # Error condition on socket for SYNC: Connection refused
1、上述error是在redis.log里面出现的,即使:
127.0.0.1:7002> slaveof 192.168.150.101 7001 =》让7001实例成为7002的从节点,返回OK,但是还是没有成功
2、127.0.0.1:7003> info replication
127.0.0.1:7003> info replication
# Replication
role:slave
master_host:192.168.150.101
master_port:7001
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_read_repl_offset:0
slave_repl_offset:0
master_link_down_since_seconds:-1
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:6bfa282d44ca2b1cf6d62acbb0c762a93d822c49
master_replid2:db342ac4bd080248072c62e9c8c398e7d07796cb
master_repl_offset:0
second_repl_offset:1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
master_link_status:down => 该节点还是关闭状态的
3、查看redis.log,看日志是什么错误。
16768:S 19 Sep 2023 13:14:16.706 * Connecting to MASTER 192.168.150.101:7001
16768:S 19 Sep 2023 13:14:16.707 * MASTER <-> REPLICA sync started
16768:S 19 Sep 2023 13:14:37.708 # Error condition on socket for SYNC: Connection refused
=》尝试连接主节点是被拒绝了。
网上找到
1、是将redis.conf配置文件里面的bind 改为 0.0.0.0 =》 允许所有的ip进行连接。但是我已经改过了
2、将redis.conf里面的 protected-mode改为 no =》 禁用保护模式以允许连接
自己分析
都尝试了,但是还没有用,这时就想放弃了,后来我一想复制redis.conf文件时,在每一个redis.conf里添加了一个 replica-announce-ip 192.168.150.101 =》 这意味着从节点会告知其他节点它的 IP 地址是 192.168.150.101。
该ip并不是随便设置的,而是该节点所在主机的ip,所以,我跟个傻子一样按照视频里敲代码,把人家的ip给写过来了。把该ip换成我虚拟机的ip就ok了。
从新再次进行主从设置
127.0.0.1:7002> slaveof no one
OK
127.0.0.1:7002> slaveof 192.168.73.123 7001
OK
127.0.0.1:7002> info replication
# Replication
role:slave
master_host:192.168.73.123
master_port:7001
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_read_repl_offset:4435
slave_repl_offset:4435
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:59bc614fd5bc9108c2dd0d909841c1946451d9eb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4435
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:4436
repl_backlog_histlen:0
slaveof no one => 清除当前节点的主从关系
slaveof 192.168.73.123 7001 => 192.168.73.123是我虚拟机的ip,也是在redis.conf里面设置的ip,7001是主节点redis的端口 。
info replication => 查看该节点的主从关系
master_link_status:up => up醒着的状态。
设置redis的日志
在redis.conf里面 => logfile /rediscluster/7001/redis1.log => /rediscluster/7001/redis1.log为该节点redis日志文件路径