Redis Sentinel实现高可用配置
一般情况下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实现高可用配置相关推荐
- Redis基础与高可用集群架构进阶详解
一.NoSQL简介 1.问题引入 每年到了过年期间,大家都会自觉自发的组织一场活动,叫做春运!以前我们买票都是到火车站排队,后来呢,有了 12306,有了它以后就更方便了,我们可以在网上买票,但是带来 ...
- 使用Docker Compose部署基于Sentinel的高可用Redis集群
大家一定非常熟悉如何利用Docker启动单个Redis容器用于开发环境,本文将介绍如何利用Docker Compose模板在本机和云端部署基于Sentinel的高可用Redis 3集群. Redis集 ...
- Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?
文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...
- Redis主从配置及通过Keepalived实现Redis自动切换高可用
Redis主从配置及通过Keepalived实现Redis自动切换高可用 [日期:2014-07-23] 来源:Linux社区 作者:fuquanjun [字体:大 中 小] 一:环境介绍: Mas ...
- Redis复制的高可用详解
一.sentinel基础 在Redis的主从复制中有一个问题很明显,比如说在一主三从的架构下,如果主节点宕机,那么所有的写操作也就不能执行了,这个主从复制架构也就瘫痪了,所以Redis引入了senti ...
- php redis 投票_高可用Redis服务架构分析与搭建
HorstXuhttps://www.cnblogs.com/xuning/p/8464625.html 基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经 ...
- redis系列之——高可用(主从、哨兵、集群)
Redis系列目录 redis系列之--分布式锁 redis系列之--缓存穿透.缓存击穿.缓存雪崩 redis系列之--Redis为什么这么快? redis系列之--数据持久化(RDB和AOF) re ...
- 视频教程- 19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合-Java
19年录制Redis实战教程 高可用秒杀分布式锁布隆过滤器实战 SpringBoot教程整合 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有nod ...
- redis如何解决高可用问题?
redis如何解决高可用问题? 使用redis集群. 目前解决redis高可用的最佳实践,就是使用redis集群. 架构 一般就是几主几从,就够用了. 比如,3主3从,或者5主5从. 每个主节点,一般 ...
- linux集群架构(一),集群概述、高可用配置
2019独角兽企业重金招聘Python工程师标准>>> linux集群概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务 ...
最新文章
- 经理人必须抛弃的十个习惯思维
- Microbiome:16S扩增子测序研究中定量变异和生物量影响
- Visual Studio 快捷键 转载
- 字符集编码ANSI和UNICODE
- LeetCode-动态规划背包题-416. 分割等和子集
- 《系统集成项目管理工程师》必背100个知识点-57沟通管理
- leetcode377. 组合总和 Ⅳ
- openjdk和jdk_JDK 11:发行候选更新和OpenJDK JDK 11 LTS
- webrtp官方demo运行
- 如何选择Spark Streaming 的Reveiver和Direct模式
- python混合线性模型_Python中的多元线性混合效应模型
- html页面上允许文字复制,网页上的文字无法复制?教你如何破除网页限制
- CAD-Cass小结(6)——dat数据格式与展点(显示属性,更改点符号)
- 静止卫星遥感图像太阳及卫星天顶、方位角(SOZ/SOA/SAZ/SAA)计算方法
- 大道至简大巧不工——和田玉雕中的哲学
- Android自定义view之网易云推荐歌单界面
- 蚂蚁特工吱指南|用来吃的AR游戏机,奥利奥终于对自己下手了
- 【历史上的今天】12 月 16 日:晶体管问世;IBM 停售 OS/2;科幻小说巨匠诞生
- C++算法设计与分析例题代码(基础篇)
- 熊猫学猿--thinkphp5修改首页
热门文章
- 2021-06-27 对象类型详解.
- 银监计算机类 考试题库,银监会(计算机类)笔试资料-微观经济学试题库 .doc...
- 零知识证明在匿名投票中的应用
- 工程技术学院c语言题库,2016年天津农学院工程技术学院C语言程序设计(同等学力加试)复试笔试最后押题五套卷...
- oracle反生异常会回滚吗,Oracle transaction rollback 事务异常回滚问题分析
- php提示返回,PHP指定方法的返回类型提示
- Spring Boot 默认数据源 HikariDataSource 与 JdbcTemplate 初遇
- WebCollector 简介与 快速入门
- Spring Boot_打造企业级微信点餐系统_汇总贴
- 程序员最想得到的十大证件,你最想得到哪个?