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


相关文章
|
运维 NoSQL 测试技术
Redis:内存陡增100%深度复盘
本文深度分析了Redis内存陡增100%的一些细节和解决方案。
699 1
Redis:内存陡增100%深度复盘
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
893 2
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3790 0
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
1323 5
|
缓存 负载均衡 监控
135_负载均衡:Redis缓存 - 提高缓存命中率的配置与最佳实践
在现代大型语言模型(LLM)部署架构中,缓存系统扮演着至关重要的角色。随着LLM应用规模的不断扩大和用户需求的持续增长,如何构建高效、可靠的缓存架构成为系统性能优化的核心挑战。Redis作为业界领先的内存数据库,因其高性能、丰富的数据结构和灵活的配置选项,已成为LLM部署中首选的缓存解决方案。
1064 25
|
12月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
1262 11
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1077 6
|
存储 缓存 NoSQL
工作 10 年!Redis 内存淘汰策略 LRU 和传统 LRU 差异,还傻傻分不清
小富带你深入解析Redis内存淘汰机制:LRU与LFU算法原理、实现方式及核心区别。揭秘Redis为何采用“近似LRU”,LFU如何解决频率老化问题,并结合实际场景教你如何选择合适策略,提升缓存命中率。
1503 3
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。

热门文章

最新文章