docker搭建Redis集群-主从复制以及哨兵模式

150 阅读3分钟

环境准备

准备三台服务器

192.168.241.138
192.168.241.139
192.168.241.140

安装doceker 文章链接:juejin.cn/post/684790…

Redis镜像拉取 三台服务器都要拉去Redis镜像

关于alpine操作系统的有点介绍下,-   
-   小巧:基于Musl libc和busybox,和busybox一样小巧,最小的Docker镜像只有5MB;
-   安全:面向安全的轻量发行版;
-   简单:提供APK包管理工具,软件的搜索、安装、删除、升级都非常方便。
-   适合容器使用:由于小巧、功能完备,非常适合作为容器的基础镜像。
sudo docker pull redis:4.0.10-alpine

检测三台主机是否拉取成功

sudo docker images

三台主机创建存放redis.conf文件目录并拉去redis.conf配置文件,主要用于数据配置文件挂载即替换容器内的配置文件

启动三台redis

启动命令:sudo docker run --name redis -v /httx/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d -p 6379:6379 -p 26379:26379 redis 
参数详解: docker:死记硬背。
run:启动容器固定写法
--name:自定义启动容器名称
-v 主机redis.conf 和redis容器做映射 
-d 后台启动
-p 端口映射 6379是redis端口 26379是哨兵端口 
redis:镜像名称

查看启动结果

sudo docker ps -a

进入三台主机redis容器内部

进入容器内部命令
# alpine操作系统
docker exec -it 容器id/容器名称 /bin/sh
# 其他操作系统
docker exec -it 容器id/容器名称 /bin/bash

进入内部可以对单个redis主机进行set值或get值

1、输入redis-cli(进入redis客户端) 
2、set name xiaoyouyou(set存值) 
3、get name (get取值)
4、查询三台主机的信息命令:info
可以看到当前三台主机都是master节点

Redis主从配置

设定主从信息如下:
192.168.241.138 master 
192.168.241.139 slave 
192.168.241.140 slave

1、进入139和140容器 命令 docker exec -it 容器id/容器名称 /bin/sh
2、输入redis-cli(进入redis客户端) 
3、绑定主redis信息:SLAVEOF 主ip 主端口
例如:slaveof 192.168.241.138 6379

测试主从(从节点是没有写入权限的,只有读的权限)

进入138机器master节点
1、进入138容器命令 docker exec -it 容器id/容器名称 /bin/sh
2、输入redis-cli(进入redis客户端)
3、set name 111
4、进入139和140容器 命令 docker exec -it 容器id/容器名称 /bin/sh
5、输入redis-cli(进入redis客户端) 
6、get name 

搭建redis哨兵模式

1、进入三台redis容器:docker exec -it 容器id/容器名称 /bin/sh
2、进入容器根目录 
3、创建哨兵配置文件:vim sentinel.conf(三台容器哨兵配置一模一样)
4. 输入: 
    #哨兵端口号 一定要和启动命令映射第二个端口号一致
    port:26379  
    #后台启动 
    daemonize yes 
    sentinel monitor mymaster 主节点ip 主节点端口 2
    举例:sentinel monitor mymaster 192.168.241.138 6379 2
5、依次三台在sentinel.conf 配置文件同一级目录执行:redis-sentinel sentinel.conf

参考文章 www.cnblogs.com/kingyifan/p…