redis故障转移sentinel

机器端口设置

主机ip 192.168.138.128 
master服务器 port 6379
slave服务器  port 6380
slave服务器  port 6381
slave服务器  port 6382
sentinel    port 26382
sentinel    port 26381
sentinel    port 26380

sentinel-6380.conf

[root@localhost ~]# cat /etc/config/sentinel-6379.conf | grep ^[^#]
protected-mode no
port 26380
dir "/usr/local/redis/redis-data"
logfile "sentinel-6380.log"
daemonize yes
sentinel myid f7f43744b591d048840437c4c4d66eb6e714ff81
sentinel monitor mymaster 192.168.138.128 6379 2
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.138.128 6380
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 192.168.138.128 6381
sentinel known-slave mymaster 192.168.138.128 6382
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-sentinel mymaster 192.168.138.128 26381 1c40344471fae628586f0cd63df6a89f0e96b585
sentinel current-epoch 0

sentinel-6381.conf

[root@localhost ~]# cat /etc/config/sentinel-6381.conf | grep ^[^#]
protected-mode no
port 26381
dir "/usr/local/redis/redis-data"
logfile "sentinel-6381.log"
daemonize yes
sentinel myid 1c40344471fae628586f0cd63df6a89f0e96b585
sentinel monitor mymaster 127.0.0.1 6379 3
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.138.128 6382
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-slave mymaster 192.168.138.128 6381
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 192.168.138.128 6380
sentinel known-sentinel mymaster 127.0.0.1 26380 f7f43744b591d048840437c4c4d66eb6e714ff81
sentinel current-epoch 0

sentinel-6382.conf

[root@localhost ~]# cat /etc/config/sentinel-6382.conf | grep ^[^#]
protected-mode no
port 26382
dir "/usr/local/redis/redis-data"
logfile "sentinel-6382.log"
daemonize yes
sentinel myid f7f43744b591d048840437c4c4d66eb6e714ff81
sentinel monitor mymaster 192.168.138.128 6379 2
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0
sentinel known-slave mymaster 192.168.138.128 6381
sentinel known-slave mymaster 192.168.138.128 6380
sentinel known-slave mymaster 127.0.0.1 6382
sentinel known-slave mymaster 127.0.0.1 6381
sentinel known-slave mymaster 127.0.0.1 6380
sentinel known-slave mymaster 192.168.138.128 6382
sentinel known-sentinel mymaster 192.168.138.128 26381 1c40344471fae628586f0cd63df6a89f0e96b585
sentinel current-epoch 0

redis-6379.conf

[root@localhost ~]# cat /etc/config/redis-6379.conf | grep ^[^#]
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "6379.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-6379.rdb
dir /usr/local/redis/redis-data/
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "appendonly-6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

redis-6380.conf

[root@localhost ~]# cat /etc/config/redis-6380.conf | grep ^[^#]
protected-mode no
port 6380
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/var/run/redis_6380.pid"
loglevel notice
logfile "6380.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6380.rdb"
dir "/usr/local/redis/redis-data"
slaveof 127.0.0.1 6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "appendonly-6380.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

redis-6381.conf

[root@localhost ~]# cat /etc/config/redis-6381.conf | grep ^[^#]
protected-mode no
port 6381
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/var/run/redis_6381.pid"
loglevel notice
logfile "6381.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6381.rdb"
dir "/usr/local/redis/redis-data"
slaveof 127.0.0.1 6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "appendonly-6381.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

redis-6382.conf

[root@localhost ~]# cat /etc/config/redis-6382.conf | grep ^[^#]
protected-mode no
port 6382
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile "/var/run/redis_6382.pid"
loglevel notice
logfile "6382.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump-6382.rdb"
dir "/usr/local/redis/redis-data"
slaveof 127.0.0.1 6379
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly yes
appendfilename "appendonly-6382.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

sentinel基本介绍

Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:

监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。

自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替

下线判断机制

  主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。
  客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN

测试是否成功

启动服务
redis-server /etc/config/redis-6379.conf;redis-server /etc/config/redis-6380.conf;redis-server /etc/config/redis-6381.conf;redis-server /etc/config/redis-6382.conf

启动sentinel
redis-sentinel /etc/config/sentinel-6380.conf;redis-sentinel /etc/config/sentinel-6381.conf;redis-sentinel /etc/config/sentinel-6382.conf

[root@localhost ~]# redis-cli -p  26380 info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.138.128:6379,slaves=6,sentinels=2

接下来是用jedis操作sentinel,采用连接池方式

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值