Redis Sentinel 的高可用性-哨兵模式

本文详细介绍如何使用Docker安装和配置Redis,包括基本的安装步骤、配置文件调整、创建容器及实现主从复制与哨兵模式高可用性配置。

Docker 安装 Redis

文章目录

Docker 安装 Redis
Docker 安装 Redis
安装 Docker
镜像加速
下载镜像
修改 Redis 配置
创建并操作容器
主从模式
添加配置文件
创建容器
查看主 Redis IP 信息
配置主从关系
Redis Sentinel 的高可用性-哨兵模式
配置文件
创建 sentinel 容器
查看状态
更多资料
Docker 安装 Redis

安装 Docker

镜像加速

参考阿里镜像中心

下载镜像

$ docker search redis # 查询镜像
$ docker pull redis # 拉取官方的镜像
$ docker images # 查看一下是否成功
1
2
3
修改 Redis 配置

下载redis.conf,文件 从官网下载。

$ wget http://download.redis.io/redis-stable/redis.conf
1
修改配置

port 6379 # 端口默认为 6379
bind 127.0.0.1 #注释掉这部分,用来限制 redis 只能本地访问或者设置为 0.0.0.0
protected-mode no #默认 yes 表示开启保护模式
daemonize no # 或者注释掉 docker 运行不要设置后台运行与-d 有冲突会闪退
dir “/data” #输入本地redis数据库存放文件夹
dbfilename #默认 dump.rdb 修改 dump-端口.rdb
创建并操作容器

$ docker run  -itd -p 6379:6379 --name redis-master -v $PWD/redis-6379.conf:/data/redis-6379.conf -v $PWD:/data redis redis-server /data/redis-6379.conf
1
$ docker exec -it redis-master redis-cli -p 6379
1
主从模式

添加配置文件

$ cp redis-6379.conf redis-6380.conf 
$ vi redis-6380.conf # 修改端口以及dbfilename
1
2
创建容器

$ docker run -itd -p 6380:6380 --name redis-slave-0 -v $PWD/redis-6380.conf:/data/redis-6380.conf -v $PWD:/data redis redis-server /data/redis-6380.conf
1
查看主 Redis IP 信息

$ docker inspect redis-master | grep IPAddress
1
配置主从关系

$ docker exec -it redis-slave-0 redis-cli -p 6379
$ slaveof 主节点的ip(host) 主节点的端口(port) # slaveof 172.17.0.2 6379
1
2
主从模式支持:一主一从结构 一主多从结构 树状主从结构

Redis Sentinel 的高可用性-哨兵模式

配置文件

# redis-sentinel-26379.conf
port 26379 # Sentinel节点的端口
daemonize yes # 守护进程
logfile "26379.log" # 日志文件
dir /data # 工作目录
sentinel monitor mymaster 172.17.0.2 6379 2
sentinel down-after-milliseconds mymaster 30000 # 单位为毫秒
sentinel parallel-syncs mymaster 1 # parallel-syncs 就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数
sentinel failover-timeout mymaster 180000 # 故障转移超时时间
#sentinel auth-pass <master-name> <password> # Sentinel 监控主节点的密码
#sentinel notification-script <master-name> <script-path> # 故障转移触发
#sentinel client-reconfig-script <master-name> <script-path> # 故障转移结束后触发
1
2
3
4
5
6
7
8
9
10
11
12
Sentinel节点的默认端口是26379。

sentinel monitor mymaster 172.17.0.2 6379 2 配置代表 sentinel-1 节点需要监控172.17.0.2:6379 这个主节点,2 代表判断主节点失败至少需要 2 个Sentinel节点同意,mymaster是主节点的别名

详细的参数说明推荐参考 Redis开发与运维 的第9章 9.2.4 配置优化

创建 sentinel 容器

$ docker run  -itd -p 26379:26379 --name redis-sentinel-1 -v $PWD/redis-sentinel-26379.conf:/data/redis-sentinel-26379.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26379.conf
1
配置多个 redis-sentinel 依次启动。配置参数只是 port logfile 需要修改其他保持不变即可

$ docker run  -itd -p 26380:26380 --name redis-sentinel-2 -v $PWD/redis-sentinel-26380.conf:/data/redis-sentinel-26380.conf -v $PWD:/data redis redis-sentinel /data/redis-sentinel-26380.conf
1
查看状态

$ docker exec -it redis-sentinel-1 redis-cli  -p 26380 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=172.17.0.2:6379,slaves=2,sentinels=3
1
2
3
4
5
6
7
8
更多资料

springboot+redis分布式锁-模拟抢单
Redis 面试答疑
深入剖析Redis系列(一) - Redis入门简介与主从搭建
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
深入剖析Redis系列(三) - Redis集群模式搭建与原理详解
深入剖析Redis系列(四) - Redis数据结构与全局命令概述
深入剖析Redis系列(五) - Redis数据结构之字符串
深入剖析Redis系列(六) - Redis数据结构之哈希
深入剖析Redis系列(七) - Redis数据结构之列表
深入剖析Redis系列(八) - Redis数据结构之集合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值