Docker应用系列(一)| 构建Redis哨兵集群
本示例基于Centos 7,在阿里云的三台机器上部署redis集群,假设目前使用的账号为release,拥有sudo权限。
由于Docker官方镜像下载较慢,可以开启阿里云的Docker镜像下载加速器,可参考此文进行配置。
假设三台主机的ip分别为:
- 主机一:192.168.0.1
- 主机二:192.168.0.2
- 主机三:192.168.0.3
三台主机的安装步骤相似,以主机一为例:
1. 安装docker服务:
sudo yum install -y docker
2. 启动docker服务:
sudo service docker start
3. 查找redis镜像:
sudo docker search redis
4. 下载官方redis镜像:
sudo docker pull docker.io/redis
5. 下载完后可检查镜像:
sudo docker images
6. 主机上建立挂载目录和redis配置文件:
mkdir -p /data/redis_data
cd /data/redis_data
touch redis.conf
vi redis.conf
主机一上的redis.conf配置信息如下:
logfile "redis.log"
port 6379
dir /data
appendonly yes
appendfilename appendonly.aof
requirepass 1234
主机二、三上也同样建立挂载目录和redis配置文件,其内容稍有不同:
logfile "redis.log"
port 6379
dir /data
appendonly yes
appendfilename appendonly.aof
slaveof 192.168.0.1 6389
masterauth 1234
requirepass 1234
配置说明:
- dir:工作目录
- logfile:日志文件在工作目录下
- slaveof:指明为主机一的从机
- requirepass:redis客户端连接的认证密码,若不需要可不配置
- masterauth:主从redis同步的认证密码,与连接密码同,若不需要可不用配置
- appendonly:是否需要持久化,yes为需要
7. 三台主机上都启动容器:
sudo docker run -p : -v /data/redis_data/:/data --name redis- -d docker.io/redis redis-server redis.conf
命令说明:
- -p 6379:6379 : 将容器的6379端口映射到主机的6379端口
- -v /data/redis_data:/data : 将主机中目录/data/redis_data挂载到容器的/data
- --name redis-6379: 给出容器名称
- -d: 后台运行
- docker.io/redis: 镜像名称
- redis-server redis.conf: redis的启动命令,指定配置文件
经过这一步后,三台主机已经建立了主从关系。
8. 查看容器运行情况:
sudo docker ps -a
运行中的容器,其状态为Up,
若要停止并删除容器,其命令为:
sudo docker stop 容器id
sudo docker rm 容器id
9. 观察容器内部redis的情况:
sudo docker exec -it 容器id /bin/bash
该命令可进入容器内部,其默认的工作目录即为/data,再执行redis-cli命令,观察redis信息:
[release@sh-lbs02 -sentinel]$ sudo docker exec -it cac /bin/bash
root@cac589144cfd:/data# redis-cli
127.0.0.1:> info
NOAUTH Authentication required.
127.0.0.1:> auth SVKFGKPaFT
OK
127.0.0.1:> info
# Server
...
# Replication
role:slave
master_host:192.168.0.1
master_port:
...
至此,可确认三台主机的主从模式已经建立成功。
10. 主机上建立哨兵目录和其配置文件:
cd /data/redis_data
touch sentinel.conf
vi sentinel.conf
三台主机上sentinel.conf的内容相同,如下:
logfile "sentinel.log"
sentinel monitor mymaster 192.168.0.1
sentinel auth-pass mymaster
配置说明:
- logfile "sentinel.log":输出日志目录
- sentinel monitor mymaster 192.168.0.1 6379 1:哨兵监控的主服务器名称为mymaster,ip为192.168.0.1,端口为6379,将这个主服务器标记为失效至少需要1个哨兵进程的同意
- sentinel auth-pass mymaster 1234 : 哨兵的认证密码
11. 三台主机上启动哨兵模式:
sudo docker run -p : -v /data/redis_data/:/data --name redis- -d docker.io/redis redis-sentinel sentinel.conf
命令说明:
- -p 26379:26379 : 将容器的26379端口映射到主机的26379端口
- -v /data/redis_data:/data : 将主机中目录/data/redis_data挂载到容器的/data
- --name redis-26379: 给出容器名称
- -d: 后台运行
- docker.io/redis: 镜像名称
- redis-sentinel sentinel.conf: sentinel的启动命令,指定配置文件
经过这一步后,哨兵模式已经建立起来。可通过观察日志查看启动情况
12. 观察容器内哨兵情况:
sudo docker exec -it 容器id /bin/bash
该命令可进入哨兵容器内部,其默认的工作目录即为/data,再执行redis-cli命令,观察redis信息:
[release@sh-lbs02 -sentinel]$ sudo docker exec -it /bin/bash
root@259da4458937:/data# redis-cli -h 127.0.0.1 -p
127.0.0.1:> info
# Server
...
# Sentinel
sentinel_masters:
sentinel_tilt:
sentinel_running_scripts:
sentinel_scripts_queue_length:
sentinel_simulate_failure_flags:
master0:name=mymaster,status=ok,address=192.168.0.1:,slaves=,sentinels=
127.0.0.1:>
至此,可以确定哨兵模式已启动成功。
Docker应用系列(一)| 构建Redis哨兵集群的更多相关文章
- Redis哨兵集群创建脚本--v2
1. 基础环境 操作系统版本 CentOS Linux release 7.6.1810 (Core) Docker 版本 19.03.11, build 42e35e61f3 Redis 版本 ...
- Linux - redis哨兵集群实例
目录 Linux - redis哨兵集群实例 命令整理 配置流程 Linux - redis哨兵集群实例 命令整理 官网地址:http://redisdoc.com/ redis-cli info # ...
- helm部署Redis哨兵集群
介绍 Redis Sentinel集群是由若干Sentinel节点组成的分布式集群,可以实现故障发现.故障自动转移.配置中心和客户端通知. 如下图: Redis Sentinel 故障转移过程: 从这 ...
- 11.Redis 哨兵集群实现高可用
作者:中华石杉 Redis 哨兵集群实现高可用 哨兵的介绍 sentinel,中文名是哨兵.哨兵是 redis 集群机构中非常重要的一个组件,主要有以下功能: 集群监控:负责监控 redis mast ...
- python连接redis哨兵集群
一.redis集群模式有多种, 哨兵模式只是其中的一种实现方式, 其原理请自行谷歌或者百度 二.python 连接 redis 哨兵集群 1. 安装redis包 pip install redis 2 ...
- redis哨兵集群搭建
下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 解压 命令:tar -zxvf redis-4.0.11.tar.gz 解压后如图所示 在/usr/lo ...
- redis哨兵集群、docker入门
redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果m ...
- 单台服务器-利用docker搭建Redis哨兵集群模式
前言:只有一台华为云服务器,所以打算创建三个容器来模拟三个服务器了. 一:拉取redis镜像 二:拉取redis.conf文件 放在自定义的目录下:wget -c http://download.re ...
- redis哨兵集群+spring boot 2.×
Ubuntu集群构建篇 redis-cli:不跟参数,默认访问localhost:6379端口,无密码登陆 redis-cli -h ${host} -p ${port} -a ${password} ...
随机推荐
- CSS选择器-常用搜集
标签选择器: div{ font-size=10px; color=red; background-color=yello; width=200px; height=200px; } <div& ...
- Python学习笔记(三十二)常用内建模块(1)— datetime
>>> from datetime import datetime >>> now = datetime.now() # 获取当前datetime >> ...
- 「七天自制PHP框架」应用:Model外键链接
这里以行政区数据为例: 一级行政区数据范例: 二级行政区范例: 三级行政区范例: 在Model层建立三个Model class ProvinceModel extends Model{ public ...
- 【BZOJ】3527: [Zjoi2014]力 FFT
[参考]「ZJOI2014」力 - FFT by menci [算法]FFT处理卷积 [题解]将式子代入后,化为Ej=Aj-Bj. Aj=Σqi*[1/(i-j)^2],i=1~j-1. 令f(i)= ...
- oozie与sqoop的简单案例
1:拷贝模板 2:拷贝hive用的jar包 方式一: 3:编辑job.properties # # Licensed to the Apache Software Foundation (ASF) u ...
- final关键字详解
java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继承 ...
- 【leetcode 简单】第四十九题 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位. 示例: 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 000000101001010000011110 ...
- vue--------脚手架vue-cli搭建
今天在看公司的项目的时候,用到的是Vue框架,哈哈,Vue已经火好久了,想必大家也晓得哈,这里宝宝就不瞎渣渣了~ 由于宝宝已经三个月木有看过代码了,所以对新公司的很多的架构和代码都是懵逼的,再加上宝宝 ...
- Tensorflow中使用TFRecords高效读取数据--结合Attention-over-Attention Neural Network for Reading Comprehension
原文链接:https://arxiv.org/pdf/1607.04423.pdf 本片论文主要讲了Attention Model在完形填空类的阅读理解上的应用. 转载:https://blog.cs ...
- N-gram语言模型与马尔科夫假设关系(转)
1.从独立性假设到联合概率链朴素贝叶斯中使用的独立性假设为 P(x1,x2,x3,...,xn)=P(x1)P(x2)P(x3)...P(xn) 去掉独立性假设,有下面这个恒等式,即联合概率链规则 P ...