redis哨兵集群+spring boot 2.×
Ubuntu集群构建篇
redis-cli:不跟参数,默认访问localhost:6379端口,无密码登陆
redis-cli -h ${host} -p ${port} -a ${password}
redis-server ${redis.conf}:这里注意配置文件
配置文件redis.conf,相关目录需提前创建,否则报错 No such file or directory
配置参数,按需配置。
设备有限,案例基于Ubuntu单机,多端口构建redis实例。
解压:
tar zxvf redis-3.0.2.tar.gz
安装:
make
redis.conf配置文件
初始主节点配置文件:
# 后台启动 即启动守护进程
daemonize yes # 守护进程运行,Redis默认将pid写入某路径下
pidfile /home/redis/redis/redisRun/redis_6381.pid # 指定端口
port 6381 # 客户端闲置多久后关闭连接,为0则关闭该功能
timeout 0
tcp-keepalive 0 # 指定日志级别,支持dubug、verbose、notice、warning,默认verbose
loglevel notice # 日志文件路径
logfile /home/redis/redislog/redis.log # 数据库数量
databases 16 # 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
# 满足以下条件将会同步数据:
# 900秒(15分钟)内有1个更改
# 300秒(5分钟)内有10个更改
# 60秒内有10000个更改
# 注:可以把所有save行注释掉,即取消同步操作
save 900 1
save 300 10
save 60 10000 stop-writes-on-bgsave-error yes # 指定存储至本地数据库时是否压缩数据,默认为yes
# Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbcompression yes rdbchecksum yes # 指定本地数据库文件名
dbfilename dump.rdb # 工作目录,即指定本地数据库存放目录,文件名由dbfilename指定
dir /home/redis/redisdb # 如果做故障切换,不论主从节点都要填写密码且要保持一致
masterauth 123456
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98 # 当前redis密码
requirepass 123456 # 指定是否在每次更新操作后进行日志记录,默认为no
appendonly yes # 指定更新日志条件,共有3个可选值:
# no:表示等操作系统进行数据缓存同步到磁盘(快)
# always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
# everysec:表示每秒同步一次(折衷,默认值)
# appendfsync always
appendfsync everysec
# appendfsync no no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64 # 指定是否激活重置哈希,默认为开启
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
初始从节点配置文件:
daemonize yes
#pid----
pidfile /home/redis/redis/redisRun/redis_6391.pid
port 6391
timeout 0
tcp-keepalive 0
loglevel notice
#日志 ----
logfile /home/redis/redislog/redis1.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
#本地数据库文件名 ------
dbfilename dump1.rdb
dir /home/redis/redisdb
#主节点密码
masterauth 123456
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98
requirepass 123456
appendonly yes
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
#配置主节点信息
slaveof *.*.*.* 6381
sentinel.conf哨兵配置文件
port 26381
#1表示在sentinel集群中只要有两个节点检测到redis主节点出故障就进行切换,单sentinel节点无效(自己测试发现的)
#如果3s内mymaster无响应,则认为mymaster宕机了
#如果10秒后,mysater仍没活过来,则启动failover
sentinel monitor mymaster *.*.*.* 6381 1
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 10000
daemonize yes
#指定工作目录
dir /home/redis/sentinel-work
protected-mode no
logfile /home/redis/sentinellog/sentinel.log
#redis主节点密码
sentinel auth-pass mymaster 123456
# Generated by CONFIG REWRITE
启动集群
主从节点redis后台启动
redis-server redis.conf
哨兵启动
redis-sentinel sentinel.conf
登陆验证
登陆
redis-cli -h *.*.*.* -p 6381 -a 123456
验证主从关联
info Replication
查看哨兵日志sentinel.log

主节点宕机,slaves重新选举master

原主节点重启,成为新的从节点

基于SpringBoot整合哨兵集群
引入pom依赖
<!-- redis启动依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 对象池化组件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.0</version>
</dependency>
application.yml配置
spring:
redis:
database: 2
password: 123456
lettuce:
pool:
max-active: 8
min-idle: 0
max-wait: -1
sentinel:
master: mymaster
nodes: *.*.*.*:26381,*.*.*.*:26391,*.*.*.*:26392,*.*.*.*:26393
host: *.*.*.*
port: 6381
测试即可:
@RestController
public class TestRedisController { @Autowired
private StringRedisTemplate stringRedisTemplate; @RequestMapping(value = "/set")
public void set(){
stringRedisTemplate.opsForValue().set("tom","jerry");
} @RequestMapping(value = "/get")
public String get(){
return stringRedisTemplate.opsForValue().get("tom");
} }
redis哨兵集群+spring boot 2.×的更多相关文章
- Linux - redis哨兵集群实例
目录 Linux - redis哨兵集群实例 命令整理 配置流程 Linux - redis哨兵集群实例 命令整理 官网地址:http://redisdoc.com/ redis-cli info # ...
- helm部署Redis哨兵集群
介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客户端通知. 如下图: Redis Sentinel 故障转移过程: 从这 ...
- 11.Redis 哨兵集群实现高可用
作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis mast ...
- python连接redis哨兵集群
一.redis集群模式有多种, 哨兵模式只是其中的一种实现方式, 其原理请自行谷歌或者百度 二.python 连接 redis 哨兵集群 1. 安装redis包 pip install redis 2 ...
- redis哨兵集群搭建
下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...
- Redis进阶实践之十 Redis哨兵集群模式
一.引言 上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...
- redis哨兵集群环境搭建
一.哨兵的介绍 哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实 ...
- redis哨兵集群、docker入门
redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...
- 【Redis哨兵集群】
目录 开始配置主从复制 开始配置Redis Sentinel @ *** 在开始之前,我们先来看看Redis的主从复制 主从复制原理: 从服务器向主服务器发送SYNC命令. 主服务器接到SYNC命令后 ...
随机推荐
- 下面哪项技术可以用在WEB开发中实现会话跟踪实现?
下面哪项技术可以用在WEB开发中实现会话跟踪实现? A:session B:Cookie C:地址重写 D:隐藏域 答案:ABCD 会话跟踪是一种灵活.轻便的机制,它使Web上的状态编程变为可能. H ...
- Hibernate缓存策略(一级缓存和EHcache二级缓存)
如何配置二级缓存: 第一步:导入EHcache依赖 1)Maven项目: <!--此处使用hibernate4--> <dependency> <groupId>o ...
- 【Java并发.5】基础构建模块
本章会介绍一些最有用的并发构建模块,有丶东西(最后一小节,纯干货). 5.1 同步容器类 同步容器类包括 Vector 和 Hashtable ,这些类实现线程安全的方式是:将它们的状态封装起来,并对 ...
- 移动前端webApp开发点滴积累20140629
#移动前端webApp开发点滴积累20140629 ##关于input行内居中的问题 给input设定一个比较高的高度,在某些版本的移动设备上,文字不能垂直居中,即使设定了相同的行高也不行.(见图) ...
- Java面试MySQL的一些问题
MySQL InnoDB存储的文件结构 索引树是如何维护的? 数据库自增主键可能的问题
- H5 59-浮动元素的脱标
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python实现一个二分查找
二分查找: 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 查找过程: 首先,假设表中元素是 ...
- echarts x轴 增加滚动条
charts x轴 增加滚动条 在option 配置项中添加 [ dataZoom 中配置 ] 设置x轴滚动条 效果图: 动态拖动 以下参考代码 dataZoom配置 官网写法 option = { ...
- CRM系统(第一部分)
阅读目录 1.需求分析 2.数据库表设计 3.起步 4.录入数据 5.知识点 1.需求分析 CRM客户关系管理软件---> 学员管理 用户:企业内部用户 用户量: 业务场景: 2.数据库表设 ...
- Handling duplicate form submission in Spring MVC
javaweb开发之防止表单重复提交 - u012843873的博客 - CSDN博客 https://blog.csdn.net/u012843873/article/details/5526212 ...