目录
一、主从复制是什么
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);
数据的复制是单向的,只能由主节点到从节点。
默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
目前很多中小企业都没有使用到 Redis 的集群,但是至少都做了主从。有了主从,当 master 挂掉的时候,运维让从库过来接管,服务就可以继续,否则 master 需要经过数据恢复和重启的过程,这就可能会拖很长的时间,影响线上业务的持续服务。
示例图:
二、一主二从设置
2.1 把redis.conf文件中的密码注释掉
2.2 创建三个配置文件
redis6380的内容
include /usr/redis/bin/redis.conf
port 6380
dbfilename dump_6380.rdb
appendfilename "appendonly_6380.aof"
pidfile /var/run/redis_6380.pid
daemonize yes
redis6381的内容
nclude /usr/redis/bin/redis.conf
port 6381
dbfilename dump_6381.rdb
appendfilename "appendonly_6381.aof"
pidfile /var/run/redis_6381.pid
daemonize yes
redis6382的内容
nclude /usr/redis/bin/redis.conf
port 6382
dbfilename dump_6382.rdb
appendfilename "appendonly_6382.aof"
pidfile /var/run/redis_6382.pid
daemonize yes
2.3 启动三台redis服器
进入redis文件的bin文件夹,分别启动三台服务器
./redis-server redis6380.conf 主
./redis-server redis6381.conf 从
./redis-server redis6382.conf 从
2.4 查看三台服务器的运行情况
运行命令
./redis-cli -p 6380
info replication
./redis-cli -p 6381
info replication
./redis-cli -p 6382
info replication
结果都是主服务器
2.5 使其中两个为从服务器
在6380和6381上执行: slaveof 127.0.0.1 6379
slaveof 127.0.0.1 6380
2.6 测试
主服务器
从服务器
三、薪火相传
把多个服务器连接起来
如果主机宕机了,从机还是从机,但是无法写入数据
把第三个服务器的主设置为6381
四、反客为主
当主服务器宕机了,可手动把从服务器设置为主服务器
执行命令
五、哨兵模式
可以自动监控主服务器的运行情况,如果主服务器宕机,过十几秒左右就会把从服务器设置为主服务器,当主服务器恢复过来就变成从服务器
主服务器宕机,会根据优先级别:replica-priority选取新的主机
优先级在redis.conf中默认:replica-priority 100,值越小优先级越高
哨兵模式设置
5.1 设置配置文件
在redis文件夹的bin里面创建一个sentinel.conf ,并写入以下内容
sentinel monitor mymaster 127.0.0.1 6380 1
5.2 启动哨兵模式
/usr/redis/bin/redis-sentinel /usr/redis/bin/sentinel.conf
5.3 测试
当主机挂掉,从机选举中产生新的主机
可以看到6380服务器的已经变成从服务器了