基于keepalived对redis做高可用配置---转载
關(guān)于keepalived的詳細(xì)介紹,請(qǐng)移步本人相關(guān)博客:http://wangfeng7399.blog.51cto.com/3518031/1405785
?
| 功能 | ip地址 | 安裝軟件 |
| 主redis | 10.13.6.13 | redis,keepalived |
| 從redis | 10.13.6.16 | redis,keepalived |
| VIP | 10.13.6.17 | ? |
一、redis主從搭建
????1.redis安裝
????本文通過yum源的安裝方式來安裝(需要配置epel源),也可以通過源碼編譯的方式來安裝 ?
| 1 2 | [root@P2Pp_Red01?~]#?yum?install?-y?redis [root@P2Pp_Red02?~]#?yum?install?-y?redis |
????2.修改配置文件
????????①、主redis需要修改的文件及內(nèi)容
| 1 2 3 | [root@P2Pp_Red01?~]#?vi?/etc/redis.conf bind?0.0.0.0 其余都可以安裝默認(rèn)狀態(tài) |
????????②、從redis需要修改的文件及內(nèi)容
| 1 2 3 | [root@P2Pp_Red02?~]#?vi?/etc/redis.conf bind?0.0.0.0 slaveof?10.13.6.13?6379?//指定主redis的地址與端口 |
????3.查看主從狀態(tài)
| 1 2 3 4 5 6 7 8 9 | [root@P2Pp_Red01?~]#?redis-cli?INFO?|grep?role?-A?3 role:master slave0:10.13.6.16,45270,online db0:keys=6,expires=0 [root@P2Pp_Red02?~]#??redis-cli?INFO?|grep?role?-A?3 role:slave master_host:10.13.6.13 master_port:6379 master_link_status:up |
二、使用keepalived對(duì)redis做高可用
????1.安裝keepalived,兩臺(tái)機(jī)器都需要安裝
| 1 2 | [root@P2Pp_Red01?~]#?yum?install?-y?keepalived [root@P2Pp_Red02?~]#?yum?install?-y?keepalived |
????2.準(zhǔn)備配置文件
????????①、主redis的配置文件,關(guān)于各行代表的意思,請(qǐng)移步我的另外一篇文檔,鏈接見文章開頭
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | [root@P2Pp_Red01?scripts]#?vi?/etc/keepalived/keepalived.conf !?Configuration?File?for?keepalived global_defs?{ ???notification_email?{ ?????acassen@firewall.loc ?????failover@firewall.loc ?????sysadmin@firewall.loc ???} ???notification_email_from?Alexandre.Cassen@firewall.loc ???smtp_server?10.13.4.17 ???smtp_connect_timeout?30 ???router_id?LVS_DEVEL } vrrp_script?chk_redis?{ ????script?"killall?-0?redis-server" ????interval?2 } vrrp_instance?VI_1?{ ????state?MASTER ????interface?eth0 ????virtual_router_id??100 ????priority?100 ????advert_int?1 ????authentication?{ ????????auth_type?PASS ????????auth_pass?1111 ????} ????virtual_ipaddress?{ ????????10.13.6.17 ????} track_script?{ ????chk_redis } ????????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 } ~[root@P2Pp_Red01?~]#?vi?/etc/keepalived/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?10.13.4.13?6379?>>?$LOGFILE??2>&1 sleep?10 #延遲10秒以后待數(shù)據(jù)同步完成后再取消同步狀態(tài) echo?"Run?SLAVEOF?NO?ONE?cmd?..."?>>?$LOGFILE $REDISCLI?SLAVEOF?NO?ONE?>>?$LOGFILE?2>&1 ~ [root@P2Pp_Red01?~]#?vi?/etc/keepalived/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秒待數(shù)據(jù)被對(duì)方同步完成之后再切換主從角色 echo?"Run?SLAVEOF?cmd?..."?>>?$LOGFILE $REDISCLI?SLAVEOF?10.13.4.13?6379?>>?$LOGFILE??2>&1 [root@P2Pp_Red01?scripts]#?vi?/etc/keepalived/scripts/redis_stop.sh? #!/bin/bash LOGFILE=/var/log/keepalived-redis-state.log echo?"[stop]"?>>?$LOGFILE date?>>?$LOGFILE [root@P2Pp_Red01?scripts]#?vi?/etc/keepalived/scripts/redis_fault.sh? #!/bin/bash GFILE=/var/log/keepalived-redis-state.log echo?"[fault]"?>>?$LOGFILE date?>>?$LOGFILE ~ |
????????②、準(zhǔn)備從redis的配置文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | [root@P2Pp_Red02?~]#?vi?/etc/keepalived/keepalived.conf !?Configuration?File?for?keepalived global_defs?{ ???notification_email?{ ?????acassen@firewall.loc ?????failover@firewall.loc ?????sysadmin@firewall.loc ???} ???notification_email_from?Alexandre.Cassen@firewall.loc ???smtp_server?10.13.4.13 ???smtp_connect_timeout?30 ???router_id?LVS_DEVEL } vrrp_script?chk_redis?{ ????script?"killall?-0?redis-server" ????interval?1 } vrrp_instance?VI_1?{ ????state?BACKUP ????interface?eth0 ????virtual_router_id?100 ????priority?99 ????advert_int?1 ????authentication?{ ????????auth_type?PASS ????????auth_pass?1111 ????} ????virtual_ipaddress?{ ????????10.13.6.17 ????} #track_script?{ #????chk_redis #} #????????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 [root@P2Pp_Red02?~]#?vi?/etc/keepalived/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?10.13.6.13?6379?>>?$LOGFILE??2>&1 sleep?10 #延遲10秒以后待數(shù)據(jù)同步完成后再取消同步狀態(tài) echo?"Run?SLAVEOF?NO?ONE?cmd?..."?>>?$LOGFILE $REDISCLI?SLAVEOF?NO?ONE?>>?$LOGFILE?2>&1 ~ [root@P2Pp_Red02?~]#?vi?/etc/keepalived/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.... sleep?15 #延遲15秒待數(shù)據(jù)被對(duì)方同步完成之后再切換主從角色 echo?"Run?SLAVEOF?cmd?..."?>>?$LOGFILE $REDISCLI?SLAVEOF?10.13.6.13?6379?>>?$LOGFILE??2>&1 其余的兩個(gè)文件跟主redis是一樣的 |
本處將不再給模擬故障,但是測(cè)試時(shí)通過的,現(xiàn)在已經(jīng)在生產(chǎn)環(huán)境中使用
本文出自 “IT民工--小楓” 博客,請(qǐng)務(wù)必保留此出處http://wangfeng7399.blog.51cto.com/3518031/1591275
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4180378.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的基于keepalived对redis做高可用配置---转载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java获取真实的IP地址--转载
- 下一篇: apache kafka源码分析-Pro