frontend redis-cluster
mode tcp
option tcplog
bind *:6379
# If at least 3 sentinels agree with the redis host that it is master, use it.
use_backend redis-node1 if { srv_is_up(redis-node1/redis-1:10.25.0.2:6379) } { nbsrv(check_master_redis-1) ge 3 }
use_backend redis-node2 if { srv_is_up(redis-node2/redis-2:10.25.0.3:6379) } { nbsrv(check_master_redis-2) ge 3 }
# If sentinel cant tell us, well, fall back to master detection
default_backend redis-cluster
backend redis-node1
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
server redis-1:10.25.0.2:6379 10.25.0.2:6379 maxconn 5000 check inter 1s
backend redis-node2
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
server redis-2:10.25.0.3:6379 10.25.0.3:6379 maxconn 5000 check inter 1s
backend redis-cluster
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
tcp-check send info\ persistence\r\n
tcp-check expect string loading:0
server redis-1:10.25.0.2:6379 10.25.0.2:6379 maxconn 5000 check inter 1s
server redis-2:10.25.0.3:6379 10.25.0.3:6379 maxconn 5000 check inter 1s
## Check 4 sentinels to see if they think redis-1 (10.25.0.2) is master
backend check_master_redis-1
mode tcp
option tcp-check
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send SENTINEL\ master\ redis\r\n
tcp-check expect string 10.25.0.2
tcp-check send QUIT\r\n
tcp-check expect string +OK
server redis-1:10.25.0.2:26379 10.25.0.2:26379 check inter 2s
server redis-2:10.25.0.3:26379 10.25.0.3:26379 check inter 2s
server redis-sentinel1:10.25.0.4:26379 10.25.0.4:26379 check inter 2s
server redis-sentinel2:10.25.0.5:26379 10.25.0.5:26379 check inter 2s
## Check 4 sentinels to see if they think redis-2 (10.25.0.3) is master
backend check_master_redis-2
mode tcp
option tcp-check
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send SENTINEL\ master\ redis\r\n
tcp-check expect string 10.25.0.3
tcp-check send QUIT\r\n
tcp-check expect string +OK
server redis-1:10.25.0.2:26379 10.25.0.2:26379 check inter 2s
server redis-2:10.25.0.3:26379 10.25.0.3:26379 check inter 2s
server redis-sentinel1:10.25.0.4:26379 10.25.0.4:26379 check inter 2s
server redis-sentinel2:10.25.0.5:26379 10.25.0.5:26379 check inter 2s |
frontend redis-cluster
mode tcp
option tcplog
bind *:6379
# If at least 3 sentinels agree with the redis host that it is master, use it.
use_backend redis-node1 if { srv_is_up(redis-node1/redis-1:10.25.0.2:6379) } { nbsrv(check_master_redis-1) ge 3 }
use_backend redis-node2 if { srv_is_up(redis-node2/redis-2:10.25.0.3:6379) } { nbsrv(check_master_redis-2) ge 3 }
# If sentinel cant tell us, well, fall back to master detection
default_backend redis-cluster
backend redis-node1
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
server redis-1:10.25.0.2:6379 10.25.0.2:6379 maxconn 5000 check inter 1s
backend redis-node2
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
server redis-2:10.25.0.3:6379 10.25.0.3:6379 maxconn 5000 check inter 1s
backend redis-cluster
mode tcp
balance first
option tcp-check
tcp-check send AUTH\ password\r\n
tcp-check expect string +OK
tcp-check send info\ replication\r\n
tcp-check expect string role:master
tcp-check send info\ persistence\r\n
tcp-check expect string loading:0
server redis-1:10.25.0.2:6379 10.25.0.2:6379 maxconn 5000 check inter 1s
server redis-2:10.25.0.3:6379 10.25.0.3:6379 maxconn 5000 check inter 1s
## Check 4 sentinels to see if they think redis-1 (10.25.0.2) is master
backend check_master_redis-1
mode tcp
option tcp-check
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send SENTINEL\ master\ redis\r\n
tcp-check expect string 10.25.0.2
tcp-check send QUIT\r\n
tcp-check expect string +OK
server redis-1:10.25.0.2:26379 10.25.0.2:26379 check inter 2s
server redis-2:10.25.0.3:26379 10.25.0.3:26379 check inter 2s
server redis-sentinel1:10.25.0.4:26379 10.25.0.4:26379 check inter 2s
server redis-sentinel2:10.25.0.5:26379 10.25.0.5:26379 check inter 2s
## Check 4 sentinels to see if they think redis-2 (10.25.0.3) is master
backend check_master_redis-2
mode tcp
option tcp-check
tcp-check send PING\r\n
tcp-check expect string +PONG
tcp-check send SENTINEL\ master\ redis\r\n
tcp-check expect string 10.25.0.3
tcp-check send QUIT\r\n
tcp-check expect string +OK
server redis-1:10.25.0.2:26379 10.25.0.2:26379 check inter 2s
server redis-2:10.25.0.3:26379 10.25.0.3:26379 check inter 2s
server redis-sentinel1:10.25.0.4:26379 10.25.0.4:26379 check inter 2s
server redis-sentinel2:10.25.0.5:26379 10.25.0.5:26379 check inter 2s
Related Posts