主从复制
sed "s/7000/7001/g" ./7000/redis.conf > ./7001/redis.conf
sed "s/7000/7002/g" ./7000/redis.conf > ./7002/redis.conf
ps -ef|grep redis
501 5948 1 0 9:59上午 ?? 0:00.55 /Users/liuxxx/Tools/redis-5.0.4/src/redis-server 127.0.0.1:7000
501 5975 1 0 10:02上午 ?? 0:00.09 /Users/liuxxx/Tools/redis-5.0.4/src/redis-server 127.0.0.1:7001
501 5984 1 0 10:02上午 ?? 0:00.01 /Users/liuxxx/Tools/redis-5.0.4/src/redis-server 127.0.0.1:7002
127.0.0.1:7001> slaveof 127.0.0.1 7000
在7001执行slaveof命令之后,通过info查看7000和7001信息分别是
master收到slaveof指令,生成dump.rdb文件,创建命令缓冲区(默认大小为1M),并把rdb文件发送给slave,由slave完成加载,此时是全量复制。命令缓冲区(aof实现)是为了实现增量复制,通过心跳机制完成。
哨兵模式
配置文件修改sentinel.conf
port 27000
pidfile /var/run/redis-sentinel27000.pid
logfile "/Users/liuxxx/Tools/myredis/sentinel7000/sentinel.log"
dir /Users/liuxxx/Tools/myredis/sentinel7000
sentinel monitor mymaster 127.0.0.1 7000 2
启动哨兵
./redis-sentinel ../../myredis/sentinel7000/sentinel.conf
./redis-sentinel ../../myredis/sentinel7001/sentinel.conf
./redis-sentinel ../../myredis/sentinel7002/sentinel.conf
- 查看master信息
- master shutdown
就这样,当master挂了会从slave当中选举出一个新的master,而另外的slave的master将指向新的master。
原先的master节点恢复之后,将会作为新的master的一个slave节点。