当前位置: 首页 > news >正文

docker重新搭建redis集群

今天遇到个问题,redis全挂了导致我的项目一直在滚动日志连不上redis,所以我重新搭建redis集群来解决这个问题

首先把配置文件搞好

redis配置文件

redis-master的配置文件

bind 0.0.0.0  
protected-mode no  
port 6379  
# requirepass redis  
# # 哨兵模式主从切换时使用  
# masterauth redis

redis-slave1的配置文件

bind 0.0.0.0  
protected-mode no  
port 6380  
# requirepass redis  
# masterauth redis  
replicaof 192.168.215.100 6379

redis-slave2的配置文件

bind 0.0.0.0  
protected-mode no  
port 6381  
# requirepass redis  
# masterauth redis  
replicaof 192.168.215.100 6379

redis-sentinel的配置文件

redis-sentinel-master的配置文件

bind 0.0.0.0  
port 26379  
# mymaster 可以自定义,redis-master redis服务器地址/网络名称,6379 redis服务器端口,2 最小投票数quorum,指明当有多少个sentinel认为一个master失效时,master才算真正失效。  
sentinel monitor mymaster 192.168.215.100 6379 2  
# 设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。  
# sentinel auth-pass mymaster redis  
# 允许Sentinel接受主机名  
sentinel resolve-hostnames yes  # Generated by CONFIG REWRITE  
latency-tracking-info-percentiles 50 99 99.9  
dir "/data"  
user default on nopass sanitize-payload ~* &* +@all  
sentinel myid 9ae9adf6d3fb6c774a4373cca34b9ebf16f6e28c  
sentinel config-epoch mymaster 0  
sentinel leader-epoch mymaster 0  
sentinel current-epoch 1  sentinel known-replica mymaster 192.168.215.100 6381  sentinel known-sentinel mymaster 192.168.215.100 26380 e353499b664abd69fcbdb20268e9115f11c0d9ee  <这串东西以你文件中实际的为主>sentinel known-sentinel mymaster 192.168.215.100 26381 956077e3e3204c7a447fe57362ab98a7f4e0715b  sentinel known-replica mymaster 192.168.215.100 6380

redis-sentinel-slave1的配置文件

bind 0.0.0.0  
port 26380  
# mymaster 可以自定义,redis-master redis服务器地址/网络名称,6379 redis服务器端口,2 最小投票数quorum,指明当有多少个sentinel认为一个master失效时,master才算真正失效。  
sentinel monitor mymaster 192.168.215.100 6379 2  
# 设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。  
# sentinel auth-pass mymaster redis  
# 允许Sentinel接受主机名  
sentinel resolve-hostnames yes  # Generated by CONFIG REWRITE  
dir "/data"  
latency-tracking-info-percentiles 50 99 99.9  
user default on nopass ~* &* +@all  
sentinel myid e353499b664abd69fcbdb20268e9115f11c0d9ee  
sentinel config-epoch mymaster 1  
sentinel leader-epoch mymaster 1  
sentinel current-epoch 1  sentinel known-replica mymaster 192.168.215.100 6381  sentinel known-replica mymaster 192.168.215.100 6380  sentinel known-sentinel mymaster 192.168.215.100 26381 956077e3e3204c7a447fe57362ab98a7f4e0715b  sentinel known-sentinel mymaster 192.168.215.100 26379 9ae9adf6d3fb6c774a4373cca34b9ebf16f6e28c

redis-sentinel-slave2的配置文件

bind 0.0.0.0  
port 26381  
# mymaster 可以自定义,redis-master redis服务器地址/网络名称,6379 redis服务器端口,2 最小投票数quorum,指明当有多少个sentinel认为一个master失效时,master才算真正失效。  
sentinel monitor mymaster 192.168.215.100 6379 2  
# 设置连接master和slave时的密码,注意的是sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。  
# sentinel auth-pass mymaster redis  
# 允许Sentinel接受主机名  
sentinel resolve-hostnames yes  # Generated by CONFIG REWRITE  
dir "/data"  
latency-tracking-info-percentiles 50 99 99.9  
user default on nopass ~* &* +@all  
sentinel myid 956077e3e3204c7a447fe57362ab98a7f4e0715b  
sentinel config-epoch mymaster 1  
sentinel leader-epoch mymaster 1  
sentinel current-epoch 1  sentinel known-replica mymaster 192.168.215.100 6380  sentinel known-sentinel mymaster 192.168.215.100 26379 9ae9adf6d3fb6c774a4373cca34b9ebf16f6e28c  sentinel known-sentinel mymaster 192.168.215.100 26380 e353499b664abd69fcbdb20268e9115f11c0d9ee  sentinel known-replica mymaster 192.168.215.100 6381

这里的域名啥的要跟自己一致啊!这里是我自己的,要使用的话记得切换。

接下来的操作

先在docker里面先把原来的容器全部删了

docker stop <容器名称>
docker rm <容器名称>

执行这些命令,注意.conf文件的路径要跟自己一致

# 启动redis
# 启动主节点
docker run -itd --name redis-master -e TZ="Asia/Shanghai"  -v /home/fkd/redis:/etc/redis  --net host  --restart=always redis redis-server /etc/redis/redis-master.conf
# 启动从节点1
docker run -itd --name redis-slave1 -e TZ="Asia/Shanghai" --network host  -v /home/fkd/redis:/etc/redis  --restart=always redis redis-server /etc/redis/redis-slave1.conf
# 启动从节点2
docker run -itd --name redis-slave2 -e TZ="Asia/Shanghai" --network host -v /home/fkd/redis:/etc/redis  --restart=always redis redis-server /etc/redis/redis-slave2.conf# 启动sentinel
# 启动主节点
docker run -itd --name redis-sentinel-master -e TZ="Asia/Shanghai"  --network host -v /home/fkd/redis:/etc/redis  --restart=always redis redis-sentinel /etc/redis/redis-sentinel-master.conf
# 启动从节点1
docker run -itd --name redis-sentinel-slave1 -e TZ="Asia/Shanghai"  --network host -v /home/fkd/redis:/etc/redis  --restart=always redis redis-sentinel /etc/redis/redis-sentinel-slave1.conf
# 启动从节点2
docker run -itd --name redis-sentinel-slave2 -e TZ="Asia/Shanghai" --network host -v /home/fkd/redis:/etc/redis  --restart=always redis redis-sentinel /etc/redis/redis-sentinel-slave2.conf

检查是否起来了

docker ps -a | grep redis

如果都是UP状态那就好了

http://www.dtcms.com/a/284805.html

相关文章:

  • ubuntu系统+N卡 | docker compose+ollama+dify
  • ACOUSLIC-AI挑战报告:基于低收入国家盲扫超声数据的胎儿腹围测量|文献速递-医学影像算法文献分享
  • 【LeetCode刷题指南】--数组串联,合并两个有序数组,删除有序数组中的重复项
  • FreeBSD Conda Python3.12下安装GPT4Free(g4f)0.5.7.3版本
  • VR全景园区:开启智慧园区新时代
  • 2025年5大国产ETL工具横向评测
  • 【面板数据】上市公司股价同步性数据集-dta+xlsx(2000-2023年)
  • GX75C数字温度传感器可兼容TMP75C
  • 上标下标 | Unicode 符号
  • 微服务架构:从单体到分布式系统的演进与实践
  • 32位 DMIC 数据 其中高八位为符号位扩展位的理解
  • git merge-base查看某个分支从哪里拉出来的、主main分支上的某个时间之后某人的提交合并到特定分支(使用 cherry-pick 的场景)
  • 研发知识系统选型实战:从 Notion 到 Gitee Wiki 的迭代经验
  • Python中with的作用和用法
  • 前端之HTML学习
  • Python可迭代对象与迭代器详解 - 深入理解Python迭代机制
  • DolphinScheduler 如何高效调度 AnalyticDB on Spark 作业?
  • 【C语言】动态内存管理全解析:malloc、calloc、realloc与free的正确使用
  • AR技术赋能石化巡检:安全高效新引擎
  • linux-SSH
  • 2025年广东食品生产高级证考试题
  • Python特殊方法完全指南 | 掌握魔术方法提升编程能力
  • 性能监控(一)性能监控核心概念、核心指标
  • SGMD辛几何模态分解 直接替换Excel运行包含频谱图相关系数图 Matlab语言!
  • 藏语识别技术:让古老智慧触手可及的AI突破
  • 前缀和题目:表现良好的最长时间段
  • 快慢指针的应用
  • 5种禁止用户复制的实用方案
  • C++网络编程 4.UDP套接字(socket)编程示例程序
  • UNISOC8850平台Log工具使用说明