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

【微服务】docker部署redis,一主二从三哨兵,读写分离

配置redis读写分离

  1. 3台虚拟机

创建目录用于挂载

mkdir -p /root/redis/{conf,data,logs}
#master配置文件
bind 0.0.0.0   //任何ip都能访问
port 6379  //redis端口号
logfile "/data/redis.log"  //日志文件存放位置,启动redis之前设置为空,在启动后进入容器内部创建并赋权限,否则会报错
requirepass 123456  //redis密码
appendonly yes  //开启持久化#node1从库配置文件
bind 0.0.0.0
port 6379
logfile "/data/redis.log"
requirepass 123456
appendonly yes
replicaof 192.168.152.201 6379
masterauth 123456#node2从库配置文件bind 0.0.0.0
port 6379
logfile "/data/redis.log"
requirepass 123456
appendonly yes
replicaof 192.168.152.201 6379
masterauth 123456
  1. 启动redis,主从服务器启动命令相同
26379 为哨兵模式端口号
--privileged=true 使redis内部用户有root权限,没设置则为普通用户docker run -p 6379:6379 -p 26379:26379  --privileged=true --name redis -v /root/redis/conf/redis.conf:/etc/redis/redis.conf -v /root/redis/data:/data -d --restart=always redis:6.2.4 redis-server /etc/redis/redis.conf
  1. 查看主节点以及从节点相关信息
#进入redis内部
docker exec -it redis /bin/bash
#创建日志文件
touch redis.log
chmod 777 /data/redis.log
#查看主从信息
info replication# Replication
role:master
connected_slaves:2
slave0:ip=192.168.152.134,port=6379,state=online,offset=112,lag=0
slave1:ip=192.168.152.135,port=6379,state=online,offset=112,lag=0
master_failover_state:no-failover
master_replid:1cb742f2e951c5f584a925b2524a93ba394ee31e
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:112
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:112
  1. master界面设值查看从节点是否同步

在这里插入图片描述
配置redis的哨兵模式

  1. 配置sentinel.conf配置文件
#关闭保护模式,允许外部访问
protected-mode no
#不限制外部访问客户端的IP
bind 0.0.0.0
#日志文件路径
logfile "/data/sentinel.log"
#要监视的主机
#格式:sentinel monitor <主机组名> <主机ip> <端口> <判断主机失效的最少哨兵数量>
#------------填写实际<主机ip><端口>------------
sentinel monitor mymaster 192.168.152.201 6379 2
#访问redis密码
#------------填写实际密码------------
sentinel auth-pass mymaster 123456
#判断主机失效所需的毫秒数
sentinel down-after-milliseconds mymaster 30000
#故障转移每个阶段执行超时毫秒数
sentinel failover-timeout mymaster 180000
#故障转移时同时对新主机执行同步的从机数量
sentinel parallel-syncs mymaster 1
  1. docker启动sentinel容器
docker run -d --privileged=true --name sentinel -v /root/redis/sentinel/sentinel.conf/:/usr/local/etc/redis/sentinel.conf -p 26379:26379 redis:6.2.4 redis-sentinel /usr/local/etc/redis/sentinel.conf
  1. 查看配置是否成功
docker exec -it sentinel /bin/bash
redis-cli -p 26379 -a 123456
info sentinel# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.152.201:6379,slaves=2,sentinels=4

相关文章:

  • Golang | Leetcode Golang题解之第119题杨辉三角II
  • 【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解
  • 【浅水模型MATLAB】尝试完成一个数值模拟竞赛题
  • Rye: 一个革新的Python包管理工具
  • Docker(Centos7+)
  • 气膜建筑的消防设计—轻空间
  • antd学习笔记
  • git使用流程与规范
  • C#加密与java 互通
  • 【运维项目经历|023】Docker自动化部署与监控项目
  • 幼儿园机器人编程介绍自己
  • Debug linux kernel
  • 【LeetCode算法】第101题:对称二叉树
  • 【wiki知识库】02.wiki知识库SpringBoot后端的准备
  • Nacos-SpringBoot-配置中心
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 30天自制操作系统-2
  • 4个实用的微服务测试策略
  • Angularjs之国际化
  • emacs初体验
  • ESLint简单操作
  • JAVA SE 6 GC调优笔记
  • JAVA并发编程--1.基础概念
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Kibana配置logstash,报表一体化
  • Node + FFmpeg 实现Canvas动画导出视频
  • Redis 懒删除(lazy free)简史
  • SSH 免密登录
  • 闭包--闭包作用之保存(一)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 翻译:Hystrix - How To Use
  • 给初学者:JavaScript 中数组操作注意点
  • 软件开发学习的5大技巧,你知道吗?
  • 实现简单的正则表达式引擎
  • 使用 @font-face
  • 使用agvtool更改app version/build
  • 微信小程序填坑清单
  • 小李飞刀:SQL题目刷起来!
  • 正则与JS中的正则
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (原)本想说脏话,奈何已放下
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .Net多线程总结
  • .net开发时的诡异问题,button的onclick事件无效
  • .pop ----remove 删除