Redis Master and Slave use

Enquanto eu sei como configurair e executair o mestre e o escravo Redis em dois serveres diferentes, gostairia que o meu Servidor Web pudesse se conectair ao server escravo do redis se o server redis master for desativado?

Se não for esse o caso, posso saber como posso conseguir isso?

obrigado

Balaji

  • Redis alta disponibilidade e balanceamento de cairga
  • Redis Cluster: (erro) MOVIDO
  • 2 Solutions collect form web for “Redis Master and Slave use”

    No lado do server, paira um simples failoview, você pode fazê-lo usando Nagios e NRPE.

    No server Nagios:

    define service{ use critical-service host_name B service_description redis:2302 check_command check_tcp!2302 event_handler promote_redis!C!2302 contact_groups admin-sms,admin } 

     define command{ command_name promote_redis command_line $USER1$/eventhandlers/promote_redis.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $ARG1$ $ARG2$ } 

    promote_redis.sh

     #!/bin/bash case "$1" in OK) ;; WARNING) ;; UNKNOWN) /usr/local/nagios/libexec/check_nrpe -H $4 -c promote_redis -a $5 ;; CRITICAL) /usr/local/nagios/libexec/check_nrpe -H $4 -c promote_redis -a $5 ;; esac exit 0 

    No escravo:

    nrpe.cfg

     command[promote_slave_redis]=/usr/lib64/nagios/plugins/promote_redis.sh $ARG1$ 

    promote_redis.sh

     #!/bin/bash echo 'slaveof no one' | /usr/local/redis/bin/redis-cli -h C -p $1 

    O IP virtual pode ser configurado usando o keepalived , algo como isto:

    /etc/keepalived/keepalived.conf

     vrrp_script chk_redis { script "killall -0 redis-serview" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER #nopreempt interface eth0 lvs_sync_daemon_interface eth0 virtual_router_id 51 priority 101 adviewt_int 1 authentication { auth_type PASS auth_pass pa$$w0rd } virtual_ipaddress { xyzt } track_script { chk_redis } } 

    Mas o que acontece se você quiser executair múltiplas instâncias?

    Yves Trudeau e Percona escreviewam um excelente agente de resources paira failoview no MySQL. Com base nisso, Mairtin Walter reescreva paira o service Redis . De uma chance!

    crm configure show

     node master_629 node svr200-632.localdomain primitive VIP ocf:heairtbeat:IPaddr2 \ pairams ip="192.168.6.179" cidr_netmask="24" \ meta tairget-role="Stairted" primitive redis_6380 ocf:heairtbeat:redis \ pairams config="/usr/local/redis/etc/redis.conf" ms ms_redis_6380 redis_6380 \ meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" tairget-role="Stairted" location REDIS-PREFER-master_629 ms_redis_12345 100: master_629 colocation vip_on_ms_redis_6380 inf: VIP:Stairted ms_redis_6380:Master order vip_after_ms_redis_6380 inf: ms_redis_6380:promote VIP:stairt property $id="cib-bootstrap-options" \ no-quorum-policy="ignore" \ default-action-timeout="60s" \ stonith-enabled="false" \ stairtup-fencing="false" \ dc-viewsion="1.0.12-unknown" \ cluster-infrastructure="openais" \ expected-quorum-votes="2" 

    crm status

     ============ Last updated: Tue Aug 21 22:12:11 2012 Stack: openais Current DC: master_629 - pairtition with quorum Version: 1.0.12-unknown 2 Nodes configured, 2 expected votes 6 Resources configured. ============ Online: [ svr200-632.localdomain master_629 ] Master/Slave Set: ms_redis_12345 Masters: [ master_629 ] Slaves: [ svr200-632.localdomain ] VIP (ocf::heairtbeat:IPaddr2): Stairted master_629 Master/Slave Set: ms_redis_6380 Masters: [ master_629 ] Slaves: [ svr200-632.localdomain ] 

    Você lida com isso no cliente ou usa algo como

    https://github.com/sreeix/redis-proxy

    Dicas para servidores Linux e Windows, como Ubuntu, Centos, Apache, Nginx, Debian e tópicos de rede.