Redis高可用Sentinel哨兵模式环境搭建

简介: Redis高可用Sentinel哨兵模式环境搭建

Sentinel哨兵


redis在主从复制:主节点挂掉后不会自动恢复一个主节点,需要手工干预切换一个从库到主库。
服务暂且不可用、手工修改一大堆配置也可能出错、可用性低。
Sentinel哨兵高可用解决方案,通过监控主从服务器,主库挂了会自动根据从节点的反馈选举进行从库到主库的切换,在也不用担心晚上睡觉的时候线上处理问题了。
复制代码


下面的环境搭建实在win的wsl中进行的


测试配置如下



网络异常,图片无法展示
|


网络异常,图片无法展示
|


redis.conf配置文件修改



主节点


无需配置
复制代码


从节点


#主节点密码
masterauth 123654
#主节点地址
slaveof 127.0.0.1 6379
复制代码


sentinel哨兵(注意需要单独安装)



安装


需要作为插件需要安装
sudo apt install redis-sentinel
复制代码


配置


port 26379
# 1标识需要从节点反馈的数量评估主节点是否挂掉了
Sentinel monitor mymaster 127.0.0.1 6379 1
#以守护进程模式启动
daemonize yes
#10秒ping不通主节点的信息,主观认为master宕机
sentinel down-after-milliseconds mymaster 10000
#故障转移后重新主从复制,1表示串行,>1并行
sentinel parallel-syncs mymaster 1
#故障转移开始,三分钟内没有完成,则认为转移失败
sentinel failover-timeout mymaster 180000
sentinel auth-pass mymaster 123654
复制代码


效果



用的可视化工具 Another Redis Desktop Manager 为redis可视化工具


正常节点


网络异常,图片无法展示
|


通过在哨兵的服务器执行命令后,主从节点都可以看到的
复制代码


干掉主节点


info replication
6381变为主节点了
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


配置文件也发生了变化


网络异常,图片无法展示
|


springboot2中的一些变化



需要改一些配置项


#-----------------redis--------------------------
# REDIS (RedisProperties)
# Redis数据库索引(默认为0)
#spring.redis.database=0
# Redis服务器地址
#spring.redis.host=127.0.0.1
# Redis服务器连接端口
#spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=123654
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8 
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=10000
#------------哨兵配置添加,上面的端口地址不需要了-----------------------------
spring.redis.sentinel.master=mymaster
#这里应该有多个地址的
spring.redis.sentinel.nodes=127.0.0.1:26379
spring.redis.password=123654
#-----------------redis end------------------------
复制代码


代码是不用动的


@Configuration
public class RedisConfig {
  @Bean
  public RedisTemplate<String, Object> redisTemplateString(RedisConnectionFactory redisConnectionFactory) {
    // 配置redisTemplate
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
    redisTemplate.setConnectionFactory(redisConnectionFactory);
    RedisSerializer stringSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringSerializer); // key序列化
    redisTemplate.setValueSerializer(stringSerializer); // value序列化
    redisTemplate.setHashKeySerializer(stringSerializer); // Hash key序列化
    redisTemplate.setHashValueSerializer(stringSerializer); // Hash value序列化
    redisTemplate.afterPropertiesSet();
    redisTemplate.setEnableTransactionSupport(true);
    return redisTemplate;
  }
}


相关文章
|
10月前
|
存储 NoSQL 数据库
Redis 逻辑数据库与集群模式详解
Redis 是高性能内存键值数据库,广泛用于缓存与实时数据处理。本文深入解析 Redis 逻辑数据库与集群模式:逻辑数据库提供16个独立存储空间,适合小规模隔离;集群模式通过分布式架构支持高并发和大数据量,但仅支持 database 0。文章对比两者特性,讲解配置与实践注意事项,并探讨持久化及性能优化策略,助你根据需求选择最佳方案。
418 5
|
5月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
5月前
|
存储 运维 NoSQL
Redis集群模式
Redis集群是一种分布式存储方案,旨在解决数据存储容量不足的问题。它通过将数据分片存储在多个节点上,实现数据的横向扩展。常见的分片算法包括哈希求余、一致性哈希和哈希槽分区。其中,Redis采用哈希槽分区算法,将数据均匀分配到16384个槽位中,每个分片负责一部分槽位。当节点故障时,集群通过故障检测和主从切换机制,确保服务的高可用性。集群还支持自动的数据迁移和负载均衡,保障系统稳定运行。
|
存储 负载均衡 NoSQL
搭建高可用及负载均衡的Redis
通过本文介绍的高可用及负载均衡Redis架构,可以有效提升Redis服务的可靠性和性能。主从复制、哨兵模式、Redis集群以及负载均衡技术的结合,使得Redis系统在应对高并发和数据一致性方面表现出色。这些配置和技术不仅适用于小型应用,也能够支持大规模企业级应用的需求。希望本文能够为您的Redis部署提供实用指导和参考。
864 9
|
监控 NoSQL Redis
Redis Sentinel:秒杀系统背后的可靠性保障神器!
本文详细介绍了如何在个人项目中利用 Redis 哨兵模式保障系统的可靠性与高可用性。哨兵模式通过监控主从服务器状态、自动故障转移和通知客户端等功能,确保在主服务器宕机时系统仍能正常运行。适用于读请求多于写请求的场景,如秒杀系统,能有效缓解数据库压力。同时也探讨了哨兵模式在高并发场景下的优化方法及潜在缺陷,帮助开发者更好地应用该模式。
340 7
Redis Sentinel:秒杀系统背后的可靠性保障神器!
|
监控 NoSQL 算法
Redis Sentinel(哨兵)详解
Redis Sentinel(哨兵)详解
611 4
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
455 4
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
195 3
|
SQL 分布式计算 NoSQL
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
大数据-42 Redis 功能扩展 发布/订阅模式 事务相关的内容 Redis弱事务
162 2
|
存储 缓存 NoSQL
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
344 1