redis-keepalived高可用

來源:互聯網
上載者:User

標籤:redis keepalived 高可用

1,版本.均為yum安裝.

[[email protected] ~]# redis-server --version
Redis server version 2.4.10 (00000000:0)
[[email protected] ~]# redis-cli --version
redis-cli 2.4.10
[[email protected] ~]# keepalived --version
Keepalived v1.2.13 (03/19,2015)
2,設定檔內容注意事項.

a,要實現redis主從複製,從節點設定檔裡添加一行slaveof 172.16.226.129(主節點ip) 6379(主節點連接埠).

b,keepalived設定檔內容:

vrrp_script chk_redis {
                script "/etc/keepalived/scripts/redis_check.sh"   ###監控指令碼
                interval 2                                        ###監控時間
}
vrrp_instance VI_1 {
        state MASTER                            ###設定為MASTER
        interface eth0                           ###監控網卡
        virtual_router_id 51
        priority 101                            ###權重值
        authentication {
                     auth_type PASS             ###加密
                     auth_pass redis            ###密碼
        }
        track_script {
                chk_redis                       ###執行上面定義的chk_redis
        }
        virtual_ipaddress {
             172.16.226.108                         ###VIP
        }
        notify_master /etc/keepalived/scripts/redis_master.sh
        notify_backup /etc/keepalived/scripts/redis_backup.sh
        notify_fault  /etc/keepalived/scripts/redis_fault.sh
        notify_stop   /etc/keepalived/scripts/redis_stop.sh
}
從節點只需要將權重值設的小一點即可.

3,實現redis主從轉換的指令碼:

[[email protected] keepalived]# cat scripts/redis_master.sh
#!/bin/bash
 REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1
 echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 192.168.241.35 6379 >> $LOGFILE  2>&1
sleep 10 #延遲10秒以後待資料同步完成後再取消同步狀態
 echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1


[[email protected] keepalived]# cat scripts/redis_check.sh
#!/bin/bash
 ALIVE=`/usr/bin/redis-cli PING`
if [ "$ALIVE" == "PONG" ]; then
  echo $ALIVE
  exit 0
else
  echo $ALIVE
  exit 1
fi


[[email protected] keepalived]# cat scripts/redis_backup.sh
#!/bin/bash
 REDISCLI="/usr/bin/redis-cli"
LOGFILE="/var/log/keepalived-redis-state.log"
 echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being slave...." >> $LOGFILE 2>&1
 sleep 15 #延遲15秒待資料被對方同步完成之後再切換主從角色
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF 192.168.241.35(另外一個節點的ip) 6379 >> $LOGFILE  2>&1


[[email protected] keepalived]# cat scripts/redis_fault.sh
#!/bin/bash
 LOGFILE=/var/log/keepalived-redis-state.log
 echo "[fault]" >> $LOGFILE
date >> $LOGFILE


[[email protected] keepalived]# cat scripts/redis_stop.sh
#!/bin/bash
 LOGFILE=/var/log/keepalived-redis-state.log
echo "[stop]" >> $LOGFILE
date >> $LOGFILE

給指令碼以執行許可權.

測試:略

遠程連結redis: redis-cli -h 172.16.226.108(伺服器ip) -p 6379(服務連接埠)



本文出自 “linux筆記” 部落格,請務必保留此出處http://lsfeng.blog.51cto.com/7959286/1718331

redis-keepalived高可用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.