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.×的更多相关文章

  1. Linux - redis哨兵集群实例

    目录 Linux - redis哨兵集群实例 命令整理 配置流程 Linux - redis哨兵集群实例 命令整理 官网地址:http://redisdoc.com/ redis-cli info # ...

  2. helm部署Redis哨兵集群

    介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客户端通知. 如下图: Redis Sentinel 故障转移过程: 从这 ...

  3. 11.Redis 哨兵集群实现高可用

    作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis mast ...

  4. python连接redis哨兵集群

    一.redis集群模式有多种, 哨兵模式只是其中的一种实现方式, 其原理请自行谷歌或者百度 二.python 连接 redis 哨兵集群 1. 安装redis包 pip install redis 2 ...

  5. redis哨兵集群搭建

    下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...

  6. Redis进阶实践之十 Redis哨兵集群模式

    一.引言             上一篇文章我们详细的讲解了Redis的主从集群模式,其实这个集群模式配置很简单,只需要在Slave的节点上进行配置,Master主节点的配置不需要做任何更改,但是有一 ...

  7. redis哨兵集群环境搭建

    一.哨兵的介绍 哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实 ...

  8. redis哨兵集群、docker入门

    redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...

  9. 【Redis哨兵集群】

    目录 开始配置主从复制 开始配置Redis Sentinel @ *** 在开始之前,我们先来看看Redis的主从复制 主从复制原理: 从服务器向主服务器发送SYNC命令. 主服务器接到SYNC命令后 ...

随机推荐

  1. Spark官方调优文档翻译(转载)

    Spark调优 由于大部分Spark计算都是在内存中完成的,所以Spark程序的瓶颈可能由集群中任意一种资源导致,如:CPU.网络带宽.或者内存等.最常见的情况是,数据能装进内存,而瓶颈是网络带宽:当 ...

  2. wpf、winform仿QQ靠边隐藏

    先说下下面的代码和demo是wpf的,如果winform要用,改动不大的. 实现思路: 通过定时刷新鼠标位置 和 窗体坐标 进行计算 来控制窗体的隐藏 显示 代码都有详细的注释 //窗体状态 true ...

  3. CentOS 6.5下RPM方式(重新)安装MySQL 5.7.21从头到尾篇

    强烈推荐参阅这一篇教程  https://www.cnblogs.com/kevingrace/p/8340690.html 下面我写的仅供参考 今天把Mysql5.1升级到了5.7,浪费了一天为了避 ...

  4. Python 学习 第十一篇:numpy

    numpy是Python中的基础模块,类型ndarray定义了一个具有矢量算术运算的多维数组,无需编写循环,就能对整个数组进行批量运算.通常情况下,导入numpy,设置别名为np. import nu ...

  5. .NET Core 中正确使用 HttpClient 的姿势

    为了更方便在服务端调用 HTTP 请求,微软在 .NET Framework 4.x 的时候引入了 HttpClient.但 HttpClient 有很多严重问题,一直饱受诟病,比如 InfoQ 的这 ...

  6. 2019年DNS服务器速度排行榜

    第一名:DNSPod 不得不说腾讯自从收购了DNSPod后,无论是服务还是速度都有显著的提升,无论是访问速度还是解析速度都在国内是处于龙头大哥的地位,昔日的老大114的地位已经不保,作为腾讯旗下的公司 ...

  7. 通过 sass-resources-loader 全局注册 Sass/Less 变量

    使用webpack引入sass/less全局变量 sass或者less都提供变量设置,在需求切换主题的项目中使用less或者sass变量,只要修改变量值,编译后所有用到该变量的样式都会被修改为你想要的 ...

  8. (第十三周)Final阶段用户调查报告

    项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 用户调查报告 调查时间:2016年12月1日  21:00——2016年12月3日  12:00 项目分享链接 ...

  9. springboot 双数据源+aop动态切换

    # springboot-double-dataspringboot-double-data 应用场景 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 多数据源 ...

  10. Django异常问题之Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。

    一般情况下,我们启动Django项目时默认设置的端口为8000,当你听着酷狗音乐敲着代码,启动Django项目时忽然翻车了. 不要慌,那是酷狗抢先一步占用了8000端口,解决这个问题的方式就是修改端口 ...