前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis高可用解决方案(一):哨兵模式

redis高可用解决方案(一):哨兵模式

作者头像
许喜朝
发布2020-08-11 16:58:58
6420
发布2020-08-11 16:58:58
举报
文章被收录于专栏:生如夏花的个人博客
redis哨兵模式

使用redis的分片可以满足redis内存的扩容,但是一旦有服务器宕机,那么整个redis都将无法使用

redis可以利用哨兵模式来实现redis的高可用

哨兵机制原理

首先配置主从结构,一台主机下面可以挂载多台从机,主机的数据同步到从机,但是从机只能读不能写

哨兵进行监听,利用心跳检测机制检查当前主机是否存货,如果超过3次没有回应则表示主机宕机

当主机宕机后,会从当前的从机中选举一个主机,其余机器都是从机,以前的主机在从新启动以后也会挂载到当前主机上

主从搭建步骤

检查是否有启动的redis

ps -ef|grep redis

关闭redis

kill -9 kid

复制分片文件夹更名为sentinel

cp shards sentinel

进入sentinel

cd sentinel

启动多台 redis

redis-server redis-6379.conf & redis-server redis-6380.conf & redsi-server redis-6381.conf

配置主从

主机:6379

从机6380,6381

连接从机

redis-server redis-6380.conf

挂载到主机

slaveof 主机ip 端口

检查挂载情况

info replication

哨兵搭建

在redis目录下有一个哨兵的配置文件复制到sentinel目录下

cp sentine.conf sentine

使用vim打开sentine.conf配置文件

vim sentine.conf

如下修改

关闭保护模式 ​ protected-mode no #去点注释 开启后台启动 ​ daemonize yes 修改哨兵监听端口 ​ sentinel monitor mymaster 127.0.0.1 6379 1

启动哨兵

redis-sentinel sentinel.conf

在springboot中集成redis哨兵

配置文件 redis.properties

代码语言:javascript
复制
redis.sentinel.masterName=mymaster
redis.sentinels=39.101.165.86:26379

redisConfig.java

代码语言:javascript
复制
@PropertySource(value = "classpath:/properties/redis.properties")
@Configuration
public class RedisConfig {
    @Value("${redis.sentinel.masterName}")
    private String masterName;
    @Value("${redis.sentinels}")
    private String sentinels;

    @Bean(name = "jedisSentinelPool")
    public JedisSentinelPool jedisSentinelPool(){
        Set<String> sentinel = new HashSet<>();
        sentinel.add(sentinels);
        JedisSentinelPool pool = new JedisSentinelPool(masterName, sentinel);
        return pool;
    }

    @Bean
    @Scope("prototype")
    public Jedis jedis(@Qualifier("jedisSentinelPool")JedisSentinelPool pool){
        Jedis jedis = pool.getResource();
        return jedis;
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis哨兵模式
    • 哨兵机制原理
      • 主从搭建步骤
        • 配置主从
          • 哨兵搭建
            • 在springboot中集成redis哨兵
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档