Redis+Keepalived記憶體資料庫叢集配置
前言:Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。
Redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value類型相對更多,包括string(字串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(雜湊類型)。
Redis是一種進階key-value資料庫。它跟memcached類似,不過資料可以持久化,而且支援的資料類型很豐富。有字串,鏈表,集合和有序集合。支援在伺服器端計算集合的並,交和補集(difference)等,還支援多種排序功能。所以Redis也可以被看成是一個資料結構服務 器。
Redis的所有資料都是儲存在記憶體中,然後不週期性通過非同步方式儲存到磁碟上(這稱為“半持久化模式”);也可以把每一次資料變化都寫入到一個usr/localend only file(aof)裡面(這稱為“全持久化模式”)。
為了提升redis高可用性,我們除了備份redis dump資料之外,還需要建立redis主從架構,可以利用從將資料庫持久化(資料持久化通俗講就是把資料儲存到磁碟上,保證不會因為斷電等因素遺失資料。
redis需要經常將記憶體中的資料同步到磁碟來保證持久化。redis支援兩種持久化方式,一種是 Snapshotting(快照)也是預設,另一種是Append-only file(縮寫aof)的方式。)
什麼是redis的主從複製呢?
Redis主從複製,當使用者往Master端寫入資料時,通過Redis Sync機制將資料檔案發送至Slave,Slave也會執行相同的操作確保資料一致;且實現Redis的主從複製非常簡單。同時slave上還可以開啟二級slave,三級slave從庫,跟MySQL的主從類似。
安裝redis可以參考上一次課程哦,這裡直接安裝slave,只需要在slave redis.conf設定檔中加入如下語句即可:
slaveof 192.168.33.10 6379 # slaveofmaster的ip master的連接埠。
一、安裝Keepalived:
tar zxf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1&&./configure --with-kernel-dir=/usr/src/kernels/2.6.18* &&make&& make install
DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ &&mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/
二、配置Keepalived:
vi /etc/keepalived/keepalied.conf
! Configuration File for keepalived
global_defs {
notification_email{
wgkgood@139.com
}
notification_email_fromwgkgood@139.com
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id151
priority 100
advert_int 5
nopreempt
authentication {
auth_typePASS
auth_pass2222
}
virtual_ipaddress{
192.168.33.100
}
}
virtual_server 192.168.33.100 6379 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout60
protocol TCP
real_server 192.168.33.10 6379 {
weight 100
notify_down/data/sh/redis.sh
TCP_CHECK {
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port6379
}
}
}
三、從Keepalived配置:
Redis從伺服器配置keepalived.conf跟master一樣,只需要把Realserver IP修改成:
real_server 192.168.33.11 ;優先順序從100改成90即可。
vi /etc/keepalived/keepalied.conf
! Configuration File for keepalived
global_defs {
notification_email{
wgkgood@139.com
}
notification_email_fromwgkgood@139.com
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id151
priority 90
advert_int 5
nopreempt
authentication {
auth_typePASS
auth_pass2222
}
virtual_ipaddress{
192.168.33.100
}
}
virtual_server 192.168.33.100 6379 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout60
protocol TCP
real_server 192.168.33.11 6379 {
weight 100
notify_down/data/sh/redis.sh
TCP_CHECK {
connect_timeout10
nb_get_retry3
delay_before_retry3
connect_port6379
}
}
}
四、建立切換指令碼:
在master、slave資料庫上建立/data/sh/redis.sh指令碼,內容為:
/etc/init.d/keepalived stop
然後分別重啟兩台Redis資料庫上keepalived服務即可。
最後測試停止master Mysql服務,是否會自動切換到Backup上即可。
下面關於Redis的文章您也可能喜歡,不妨參考下:
Ubuntu 14.04下Redis安裝及簡單測試
Redis主從複製基本配置
Redis叢集明細文檔
Ubuntu 12.10下安裝Redis(圖文詳解)+ Jedis串連Redis
Redis系列-安裝部署維護篇
CentOS 6.3安裝Redis
Redis安裝部署學習筆記
Redis設定檔redis.conf 詳解
Redis 的詳細介紹:請點這裡
Redis 的:請點這裡
本文永久更新連結地址: