Redis+Keepalived内存数据库集群配置

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

前言: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


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
缓存 Prometheus 监控
Elasticsearch集群JVM调优设置合适的堆内存大小
Elasticsearch集群JVM调优设置合适的堆内存大小
515 1
|
7天前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
1月前
|
NoSQL 算法 Redis
redis内存淘汰策略
Redis支持8种内存淘汰策略,包括noeviction、volatile-ttl、allkeys-random、volatile-random、allkeys-lru、volatile-lru、allkeys-lfu和volatile-lfu。这些策略分别针对所有键或仅设置TTL的键,采用随机、LRU(最近最久未使用)或LFU(最少频率使用)等算法进行淘汰。
52 5
|
1月前
|
存储 NoSQL Redis
redis主从集群与分片集群的区别
主从集群通过主节点处理写操作并向从节点广播读操作,从节点处理读操作并复制主节点数据,优点在于提高读取性能、数据冗余及故障转移。分片集群则将数据分散存储于多节点,根据规则路由请求,优势在于横向扩展能力强,提升读写性能与存储容量,增强系统可用性和容错性。主从适用于简单场景,分片适合大规模高性能需求。
59 5
|
1月前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
2月前
|
存储 缓存 监控
Elasticsearch集群JVM调优堆外内存
Elasticsearch集群JVM调优堆外内存
62 1
|
3月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
56 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
3月前
|
存储 缓存 NoSQL
Redis Quicklist 竟让内存占用狂降50%?
【10月更文挑战第11天】
62 2
|
4月前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
850 2
|
4月前
|
缓存 监控 NoSQL
阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
大家好,我是 V 哥。粉丝小 A 面试阿里时被问到 Redis 的内存淘汰策略问题,特此整理了一份详细笔记供参考。Redis 的内存淘汰策略决定了在内存达到上限时如何移除数据。希望这份笔记对你有所帮助!欢迎关注“威哥爱编程”,一起学习与成长。

热门文章

最新文章