Redis 主从复制以及哨兵模式

2019-03-01  本文已影响0人  leivers

一、主从复制

只需要在从服务器上/etc/redis/redis-6381执行如下命令
即可

slaveof  主服务器的IP  端口号

二、主从 + Sentinel 哨兵模式

主服务器为 10.0.104.122
端口号 6380

修改主服务器配置文件
vim /etc/redis/redis-6380.conf


port 6380
daemonize yes
pidfile "/var/run/redis-6380.pid"
logfile "/redis/data/redis-6380.log"
dir "/redis/data"
protected-mode no

从服务器 10.0.104.177
端口号 6381

现在修改从配置文件
vim /etc/redis/redis-6381.conf

slaveof  主服务器的IP 10.0.104.122 端口号 6380
port 6381
daemonize yes
pidfile "/var/run/redis-6381.pid"
logfile "/redis/data/redis-6381.log"
dir "/redis/data"

protected-mode no
# Generated by CONFIG REWRITE

slaveof 10.0.104.122 6380

假如主服务器 IP 是: 10.0.104.122
端口是: 6380

# slaveof <masterip> <masterport>
slaveof  10.0.104.122 6380

// 配置此服务器只提供读取操作
slave-read-only yes

第二个从服务器 10.0.104.178
端口号 6382

现在修改从配置文件
vim /etc/redis/redis-6382.conf

port 6382
daemonize yes
pidfile "/var/run/redis-6382.pid"
logfile "/redis/data/redis-6382.log"
dir "/redis/data"

protected-mode no
# Generated by CONFIG REWRITE

slaveof 10.0.104.122 6380

先启动服务

redis-server /etc/redis/redis-6380
redis-server /etc/redis/redis-6381
redis-server /etc/redis/redis-6382

配置1号哨兵
vim /etc/redis/sentinel-27000.conf

port 27000
dir "/redis/data"
daemonize yes
protected-mode no
logfile "27000.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 5000
sentinel parallel-syncs mymaster 1

配置2号哨兵
vim /etc/redis/sentinel-27001.conf

port 27001
dir "/redis/data"
daemonize yes
protected-mode no
logfile "27001.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 5000
sentinel parallel-syncs mymaster 1

配置3号哨兵
vim /etc/redis/sentinel-27001.conf

port 27002
dir "/redis/data"
daemonize yes
protected-mode no
logfile "27002.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 5000
sentinel parallel-syncs mymaster 1

启动服务

redis-sentinel /etc/redis/sentinel-27000.conf
redis-sentinel /etc/redis/sentinel-27001.conf
redis-sentinel /etc/redis/sentinel-27002.conf

测试 在主服务器上

故障演练
停止 Master 节点的服务

[root@s1 ~]# redis-cli -p 6380 shutdown

不断的刷新其中一个 Sentinel 节点的信息,观察最后一行信息的变化

[root@s1 ~]# redis-cli -p 27001 info
...略...
master0:name=mymaster,status=ok,address=127.0.0.1:6382,slaves=2,sentinels=3
:
上一篇 下一篇

猜你喜欢

热点阅读