Redis+Keepalived内存数据库集群配置-阿里云开发者社区

开发者社区> 科技小能手> 正文

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配置文件中加入如下语句即可:

1
slaveof 192.168.33.10 6379  # slaveofmaster的ip master的端口。

一、安装Keepalived:

1
2
3
4
5
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 

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
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修改成:

1
 real_server 192.168.33.11 ;优先级从100改成90即可。

vi /etc/keepalived/keepalied.conf

! Configuration File for keepalived 

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
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脚本,内容为:

1
  /etc/init.d/keepalived stop

然后分别重启两台Redis数据库上keepalived服务即可。

最后测试停止master Mysql服务,是否会自动切换到Backup上即可。


本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1690864


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PO,VO,DAO,BO,POJO 之间的区别你懂吗?
value object:值对象。 通常用于业务层之间的数据传递,由new创建,由GC回收。
7 0
ECS使用有感
我是一名即将步入社会的大学生,随着网络法等相关专业知识的学习愈发强烈。查询资料时,常常会浏览到制作精美的个人站,因此产生了建设自己个人站的设想,但是由于业余时间少之甚少,同时听闻购买域名与服务器的价格不菲,因此计划一直未能实现
4 0
冬季实战营第一期:从零到一上手玩转云服务器体验步骤
冬季实战营第一期:从零到一上手玩转云服务器体验步骤
4 0
冬季实战营第一期:从零到一上手玩转云服务器学习报告
从零到一上手玩转云服务器,第一期学习报告
5 0
轻松实现织梦网站数据迁移到新站点
众所周知,织梦已经开始收费了,这对国内版权意识增强应该不算坏事,但想要免费使用又不想惹麻烦的站长们就有点麻烦了。
4 0
冬季实战营第一期学习报告
1月17至22日,我有幸参加了阿里云组织的“冬季实战营第一期:从零到一上手玩转云服务器”抱着期待和学习的心情,我参与其中,经过训练,收益良多、颇有收获
17 0
学习报告第一期
我有幸参加了阿里云组织的“冬季实战营第一期:从零到一上手玩转云服务器”抱着期待和学习的心情,我参与其中,经过训练,收益良多、颇有收获
4 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载