Redis进阶(3)——在Linux上基于Docker容器Redis搭建一主二从三哨兵 & SpringBoot整合Redis哨兵_linux下docker部署redis

.
├── conf
├── data
└── log

3 directories, 0 files

拷贝之前的配置文件

在这里插入图片描述

[root@localhost conf]# pwd
/usr/local/software/6389/conf
[root@localhost conf]# cp …/…/6380/conf/redis.conf ./
[root@localhost conf]# ls
redis.conf
[root@localhost conf]#

conf的修改:允许任何端口访问

在这里插入图片描述

关掉保护,可随意访问

在这里插入图片描述

端口映射6389—6379

在这里插入图片描述

为哨兵做的准备,暴露服务器的ip

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

打开AOF持久化方法

在这里插入图片描述

vim文件显示行数冒号 :set number

在这里插入图片描述

快速跳转:行号+gg

在这里插入图片描述

redis.log日志文件

在这里插入图片描述

linux中文件可执行

X 执行
R 读
W 写
RWX 111

运行容器

修改时区,,日志正常:-v /etc/localtime:/etc/localtime \

docker run
-i:以交互模式运行容器
-t:为容器重新分配一个伪输入终端
–name :容器名称
–privileged: 设置容器公开权限(默认为true)
-p :映射端口 linux端口: 容器内置端口(mysql默认端口为3306)
-v : linux挂载文件夹/文件和容器内路径的映射
-e: 容器的环境变量(设置mysql默认用户名&密码)
-d: 后台运行容器,并返回容器ID

docker run -it
–name redis_6389
–privileged
-p 6389:6379
–network pet_docker_net
–ip 172.18.12.80
-v /etc/localtime:/etc/localtime
-v /usr/local/software/6389/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/6389/data/:/data
-v /usr/local/software/6389/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf

查看日志方式tail

cat/tail/head

cat 日志文件名称

tail 日志文件名称 — 最新的日志内容:最新的日志

head 日志文件

在这里插入图片描述

[root@localhost log]# tail redis.log |grep version
1:C 12 Aug 2023 11:02:56.436 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
[root@localhost log]#

从aof中读取的日志

在这里插入图片描述

在这里插入图片描述

6390Slave

获取主的内部的ip地址

在这里插入图片描述

“IPAddress”: “172.18.12.80”, 从配置主的端口

在这里插入图片描述

运行容器

docker run -it
–name redis_6390
–privileged
-p 6390:6379
–network pet_docker_net
–ip 172.18.12.85
-v /etc/localtime:/etc/localtime
-v /usr/local/software/6390/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/6390/data/:/data
-v /usr/local/software/6390/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf

在这里插入图片描述

6391Slave

[root@localhost 6391]# cd conf
[root@localhost conf]# cp …/…/6390/conf/redis.conf ./
[root@localhost conf]# pwd
/usr/local/software/6391/conf
[root@localhost conf]# ll
总用量 92
-rwxr-xr-x. 1 root root 93909 8月 12 12:44 redis.conf
[root@localhost conf]# cd …
[root@localhost 6391]# ls
conf data log
[root@localhost 6391]# cd log/
[root@localhost log]# touch redis.log
[root@localhost log]# ll
总用量 0
-rw-r–r–. 1 root root 0 8月 12 12:45 redis.log
[root@localhost log]# chmod 777 redis.log
[root@localhost log]# ll
总用量 0
-rwxrwxrwx. 1 root root 0 8月 12 12:45 redis.log

运行容器

docker run -it
–name redis_6391
–privileged
-p 6391:6379
–network pet_docker_net
–ip 172.18.12.86
-v /etc/localtime:/etc/localtime
-v /usr/local/software/6391/conf/redis.conf:/usr/local/etc/redis/redis.conf
-v /usr/local/software/6391/data/:/data
-v /usr/local/software/6391/log/redis.log:/var/log/redis.log
-d redis
/usr/local/etc/redis/redis.conf

在这里插入图片描述

搭建成功1主2从

在这里插入图片描述

[root@localhost log]# docker exec -it redis_6389 bash
root@013a85fa5f85:/data# redis-cli
127.0.0.1:6379> info replication

Replication

role:master
connected_slaves:2
slave0:ip=172.18.12.85,port=6379,state=online,offset=784,lag=1
slave1:ip=172.18.12.86,port=6379,state=online,offset=784,lag=1
master_failover_state:no-failover
master_replid:9db2c05f3c084af02e48840cc9aa6467304ecd20
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:784
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:784
127.0.0.1:6379>

在这里插入图片描述

创建3哨兵

奇数个哨兵。

三哨兵策略: 1主二从

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建文件夹sentinel

在这里插入图片描述

在这里插入图片描述

[root@localhost conf]# touch sentinel.conf
[root@localhost conf]# vim sentinel.conf
[root@localhost conf]# cat sentinel.conf

所以无需担心端口重复使用

如果需要在单机

port 26389

设定密码认证

requirepass 123456

配置哨兵的监控参数

格式:sentinel monitor

master-name是为这个被监控的master起的名字

ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,所以这里写master节点的容器名

redis-port是被监控节点所监听的端口号

quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了

sentinel monitor redis_6389 192.168.111.130 6389 2

连接主节点的密码

格式:sentinel auth-pass

sentinel auth-pass local-master 123456

master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒

格式:sentinel down-after-milliseconds

sentinel down-after-milliseconds redis_6389 30000

[root@localhost conf]#

创建运行哨兵容器

docker run -it
–name sentinel_26389
–privileged
–network pet_docker_net
–sysctl net.core.somaxconn=1024
–ip 172.18.12.90
-p 26389:26389
-v /etc/localtime:/etc/localtime
-v /usr/local/software/sentinel/26389/conf:/user/local/etc/redis/conf/
-d redis
redis-sentinel /user/local/etc/redis/conf/sentinel.conf

docker run -it
–name sentinel_26390
–privileged
–network pet_docker_net
–sysctl net.core.somaxconn=1024
–ip 172.18.12.91
-p 26390:26390
-v /etc/localtime:/etc/localtime
-v /usr/local/software/sentinel/26390/conf:/user/local/etc/redis/conf/
-d redis
redis-sentinel /user/local/etc/redis/conf/sentinel.conf

docker run -it
–name sentinel_26391
–privileged
–network pet_docker_net
–sysctl net.core.somaxconn=1024
–ip 172.18.12.92
-p 26391:26391
-v /etc/localtime:/etc/localtime
-v /usr/local/software/sentinel/26391/conf:/user/local/etc/redis/conf/
-d redis
redis-sentinel /user/local/etc/redis/conf/sentinel.conf

1主2从搭建成功

在这里插入图片描述

查看哨兵日志

在这里插入图片描述

问题:脑裂问题

在这里插入图片描述

问题:

  1. 主由于某种网络原因,被哨兵判断为被动下线, 踢下线,2秒钟上线???
  2. 脑裂问题?

在这里插入图片描述

SpringBoot整合Redis哨兵

启动1主2从,3哨兵

在这里插入图片描述

[root@localhost log]# docker exec -it redis_6389 bash
root@013a85fa5f85:/data# redis-cli
127.0.0.1:6379> info replication

在这里插入图片描述

pom.xml文件

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

片转存中…(img-NWcsrM37-1712911977341)]
[外链图片转存中…(img-x8M9zcnT-1712911977342)]
[外链图片转存中…(img-HpW44Rgv-1712911977342)]
[外链图片转存中…(img-mPwC4Wx2-1712911977343)]
[外链图片转存中…(img-ENa5TpGI-1712911977343)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-Hf8lnRz3-1712911977344)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值