一般情况下yum安装redis的启动目录在:”/usr/sbin” ;配置目录在”/etc/redis/”在其目录下会有默认的redis.conf和redis-sentinel.conf

redis高可用配置:

配置哨兵(redis-sentinel),我的所有配置文件都放在/etc/redis-cluster/目录下 

1、创建redis-sentinel_26379.conf,主要内容如下:

#基本配置
port 26379
daemonize yes
logfile "/var/log/redis/sentinel_26379.log"
protected-mode no
dir /var/lib/redis-cluster/sentinel#检查配置
sentinel monitor mymaster 127.0.0.1 6379 1  (指向master服务器或端口)
#sentinel auth-pass mymaster passwd
sentinel parallel-syncs mymaster 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000

2、创建redis-sentinel_26380.conf,主要内容如下:

#基本配置
port 26380
daemonize yes
logfile "/var/log/redis/sentinel_26380.log"
protected-mode no
dir /var/lib/redis-cluster/sentinel
#检查配置
sentinel monitor mymaster 127.0.0.1 6379 1  (指向master服务器或端口)
#sentinel auth-pass mymaster passwd
sentinel parallel-syncs mymaster 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000

sentinel monitor的参数声明的含义如下所示:

sentinel monitor [master-group-name] [ip] [port] [quorum] 
第一行用于告诉Redis监控一个master叫做mymaster,它的地址在127.0.0.1,端口为6379,法定人数是2。每个参数都很容易理解,但是quorum需要解释一下: 
1. quorum是Sentinel需要协商同意master是否可到达的数量。为了真正的标记slave为失败,并最终是否需要启动一个故障转移进程。 
2. 无论怎样,quorum只用于检测故障。为了实际执行故障转移,Sentinel需要选举leader并进行授权。这只发生在大多数Sentinel进程的选举。

其他的选项通常是这种形式:

其他的选项通常是这种形式:sentinel [option_name] [master_name] [option_value] 
1. down-after-milliseconds - 一个实例不可到达(不能ping通或者有错误),Sentinel开始认为它是down的毫秒数。 
2. parallel-syncs - 设置在故障转移之后同时可以重新配置使用新master的slave的数量。数字越低,更多的时间将会用故障转移完成,但是如果slaves配置为服务旧数据,你可能不希望所有的slave同时重新同步master。因为主从复制对于slave是非阻塞的,当停止从master加载批量数据时有一个片刻延迟。通过设置选项为1,确信每次只有一个slave是不可到达的。

3、创建redis-master-6379.conf,master配置基本和默认文件没有差别,主要内容如下:

daemonize yes
protected-mode no
port 6379
#requirepass "passwd"
#masterauth "passwd"

4、创建redis-slave-6380.conf,主要内容如下:

protected-mode no
port 6380
daemonize yes
#requirepass "passwd"
#masterauth "passwd"
slaveof 127.0.0.1 6379

5、接下来就可以启动了。

cd /usr/sbin/
#启动master redis
redis-server /etc/redis-cluster/redis-master-6379.conf
#启动slave redis
redis-server /etc/redis-cluster/redis-slave-6380.conf
#启动redis-sentinel
redis-sentinel /etc/redis-cluster/redis-sentinel_26379.conf
redis-sentinel /etc/redis-cluster/redis-sentinel_26380.conf

我们可以在/var/log/redis/sentinel_26379.log目录下查看响应的日志。

6、spring boot集成redis-sentinel

来单机的配置注释掉
#spring.redis.host=127.0.0.1
# Redis服务器连接端口
#spring.redis.port=6379增加高可用配置
#哨兵监听redis server名称
spring.redis.sentinel.master=mymaster
#哨兵的配置列表
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380代码中就可以在RedisUtils直接用了,如:
@Autowired
private RedisTemplate redisTemplate;
后面在控制器可以直接用RedisUtils定义的方法了

具体RedisUtils代码见下面的地址: 
https://coding.net/u/evening/p/development-tool-summary/git/blob/master/RedisUtils

现在就已经部署成功了,我们可以断掉一台redis-sentinel或者redis测试一下,会自动切换的。感觉这个redis-sentinel和注册中心差不多。

这个过程也遇到了很多坑,总结一下。 
1:全部配置完成后启动项目报:All sentinels down, cannot determine where is mymaster master is running… 
这个可能有两个原因:端口没有开放或者redis-sentinel文件中没有加protected-mode no 
2:集成spring boot后redis存值会多个\xac\xed\x00\x05t\x00\x0c东西。 
这个是因为使用了默认的序列化,我们使用jackson2JsonRedisSerializer就可以了,详见上面连接地址。

转载于:https://www.cnblogs.com/dusked/p/9501091.html

Redis Sentinel实现高可用配置相关推荐

  1. Redis基础与高可用集群架构进阶详解

    一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...

  2. 使用Docker Compose部署基于Sentinel的高可用Redis集群

    大家一定非常熟悉如何利用Docker启动单个Redis容器用于开发环境,本文将介绍如何利用Docker Compose模板在本机和云端部署基于Sentinel的高可用Redis 3集群. Redis集 ...

  3. Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?

    文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...

  4. Redis主从配置及通过Keepalived实现Redis自动切换高可用

    Redis主从配置及通过Keepalived实现Redis自动切换高可用 [日期:2014-07-23] 来源:Linux社区  作者:fuquanjun [字体:大 中 小] 一:环境介绍: Mas ...

  5. Redis复制的高可用详解

    一.sentinel基础 在Redis的主从复制中有一个问题很明显,比如说在一主三从的架构下,如果主节点宕机,那么所有的写操作也就不能执行了,这个主从复制架构也就瘫痪了,所以Redis引入了senti ...

  6. php redis 投票_高可用Redis服务架构分析与搭建

    HorstXuhttps://www.cnblogs.com/xuning/p/8464625.html 基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经 ...

  7. redis系列之——高可用(主从、哨兵、集群)

    Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...

  8. 视频教程- 19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合-Java

    19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有nod ...

  9. redis如何解决高可用问题?

    redis如何解决高可用问题? 使用redis集群. 目前解决redis高可用的最佳实践,就是使用redis集群. 架构 一般就是几主几从,就够用了. 比如,3主3从,或者5主5从. 每个主节点,一般 ...

  10. linux集群架构(一),集群概述、高可用配置

    2019独角兽企业重金招聘Python工程师标准>>> linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务 ...

最新文章

  1. 经理人必须抛弃的十个习惯思维
  2. Microbiome:16S扩增子测序研究中定量变异和生物量影响
  3. Visual Studio 快捷键 转载
  4. 字符集编码ANSI和UNICODE
  5. LeetCode-动态规划背包题-416. 分割等和子集
  6. 《系统集成项目管理工程师》必背100个知识点-57沟通管理
  7. leetcode377. 组合总和 Ⅳ
  8. openjdk和jdk_JDK 11:发行候选更新和OpenJDK JDK 11 LTS
  9. webrtp官方demo运行
  10. 如何选择Spark Streaming 的Reveiver和Direct模式
  11. python混合线性模型_Python中的多元线性混合效应模型
  12. html页面上允许文字复制,网页上的文字无法复制?教你如何破除网页限制
  13. CAD-Cass小结(6)——dat数据格式与展点(显示属性,更改点符号)
  14. 静止卫星遥感图像太阳及卫星天顶、方位角(SOZ/SOA/SAZ/SAA)计算方法
  15. 大道至简大巧不工——和田玉雕中的哲学
  16. Android自定义view之网易云推荐歌单界面
  17. 蚂蚁特工吱指南|用来吃的AR游戏机,奥利奥终于对自己下手了
  18. 【历史上的今天】12 月 16 日:晶体管问世;IBM 停售 OS/2;科幻小说巨匠诞生
  19. C++算法设计与分析例题代码(基础篇)
  20. 熊猫学猿--thinkphp5修改首页

热门文章

  1. 2021-06-27 对象类型详解.
  2. 银监计算机类 考试题库,银监会(计算机类)笔试资料-微观经济学试题库 .doc...
  3. 零知识证明在匿名投票中的应用
  4. 工程技术学院c语言题库,2016年天津农学院工程技术学院C语言程序设计(同等学力加试)复试笔试最后押题五套卷...
  5. oracle反生异常会回滚吗,Oracle transaction rollback 事务异常回滚问题分析
  6. php提示返回,PHP指定方法的返回类型提示
  7. Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate 初遇
  8. WebCollector 简介与 快速入门
  9. Spring Boot_打造企业级微信点餐系统_汇总贴
  10. 程序员最想得到的十大证件,你最想得到哪个?