当前位置: 首页 > 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.lryc.cn/news/591886.html

相关文章:

  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十课——图像还原的FPGA实现
  • 基于vue + Cesium 的蜂巢地图可视化实现
  • 数据仓库分层经典架构:ODS、DWD、DWS
  • 【通识】网络的基础知识
  • 李宏毅《生成式人工智能导论》 | 第15讲-第18讲:生成的策略-影像有关的生成式AI
  • 无线调制的几种方式
  • 2-Vue3应用介绍
  • 调用 System.gc() 的弊端及修复方式
  • 如何优雅处理 Flowable 工作流的 TaskAlreadyClaimedException?
  • Kotlin抽象类
  • github不能访问怎么办
  • Allure + JUnit5
  • 宝塔申请证书错误,提示 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘
  • 开源鸿蒙5.0北向开发测试:测试鸿蒙显示帧率
  • Jenkins Git Parameter 分支不显示前缀origin/或repo/
  • MySQL安装(yum版)
  • Lotus-基于大模型的查询引擎 -开源学习整理
  • 海思3516CV610 卷绕 研究
  • 用Amazon Q Developer命令行工具(CLI)快捷开发酒店入住应用程序
  • Python编程进阶知识之第二课学习网络爬虫(requests)
  • 菜单权限管理
  • Spring底层原理(一)核心原理
  • 第十八节:第三部分:java高级:反射-获取构造器对象并使用
  • MYOJ_8518:CSP初赛题单3:数制练习专项
  • 【Java】文件编辑器
  • CSP-S模拟赛三(仍然是难度远超CSP-S)
  • 【Linux】LVS(Linux virual server)
  • 网络爬虫的详细知识点
  • Spring 多模块配置国际化,MessageSource只能加载一个文件
  • 栈和队列的题目,咕咕咕