网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
拷贝之前的配置文件
[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> <ip> <redis-port> <quorum>
# master-name是为这个被监控的master起的名字
# ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,所以这里写master节点的容器名
# redis-port是被监控节点所监听的端口号
# quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
sentinel monitor redis_6389 192.168.111.130 6389 2
# 连接主节点的密码
# 格式:sentinel auth-pass <master-name> <password>
# sentinel auth-pass local-master 123456
# master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
# 格式:sentinel down-after-milliseconds <master-name> <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从搭建成功
查看哨兵日志
问题:脑裂问题
问题:
- 主由于某种网络原因,被哨兵判断为被动下线, 踢下线,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文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
1. **linux从入门到精通(第2版)**
2. **Linux系统移植**
3. **Linux驱动开发入门与实战**
4. **LINUX 系统移植 第2版**
5. **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**