一、主从复制
只需要在从服务器上/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
:
网友评论