本文最后更新于194 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
建立主从的原理过程
步骤一:从库通过slaveof 10.0.0.51 6379命令,连接到主库缓存服务,并发送SYNC给主库;
步骤二:主库收到SYNC数据后,会立即触发BGSAVE,在后台保存RDB信息,并发送给副本库
步骤三:从库接收后会应用加载RDB快照数据信息;
步骤四:主库会陆续将后续产生的新操作数据,保存并发送给从库,至此主从同步正常建立了
主从异常恢复原理
步骤一:如果发生主从关系断开时,从库数据没有任何损坏,在下一次重连之后,从库发送PSYNC给主库;
步骤二:主库只会将从库缺失部分的数据同步给从库应用,达到快速恢复主从的目的;
建立主从同步架构
步骤一:部署多个数据库实例
10.0.0.51 6380 主节点实例
10.0.0.51 6381 从节点实例
10.0.0.51 6382 从节点实例
mkdir -p /data/63{80..82}
cat >/data/6380/redis.conf <<EOF
port 6380
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
bind 10.0.0.51 127.0.0.1
dbfilename dump.rdb
dir /data/6380
requirepass 123
masterauth 123
EOF
cat >/data/6381/redis.conf <<EOF
port 6381
daemonize yes
pidfile /data/6381/redis.pid
loglevel notice
logfile "/data/6381/redis.log"
dbfilename dump.rdb
bind 10.0.0.51 127.0.0.1
dir /data/6381
requirepass 123
masterauth 123
EOF
cat >/data/6382/redis.conf <<EOF
port 6382
daemonize yes
pidfile /data/6382/redis.pid
loglevel notice
logfile "/data/6382/redis.log"
dbfilename dump.rdb
bind 10.0.0.51 127.0.0.1
dir /data/6382
requirepass 123
masterauth 123
EOF
redis-server /data/6380/redis.conf
redis-server /data/6381/redis.conf
redis-server /data/6382/redis.conf
步骤二:实现主从同步
redis-cli -p 6381 -a 123 slaveof 127.0.0.1 6380
redis-cli -p 6382 -a 123 slaveof 127.0.0.1 6380
在redis主节点检查主从建立状态信息
redis-cli -p 6380 -a 123 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=42,lag=1
slave1:ip=127.0.0.1,port=6382,state=online,offset=42,lag=1
在redis从节点检查主从建立状态信息
redis-cli -p 6381 -a 123 info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up