docker中实现多机redis主从集群

redis主从集群是每个使用redis的小伙伴都必需知道的,那如何在docker中快速配置呢?这篇来教你快速上手,跟着复制完全就能用!!

1. 前置准备

1.1 docker安装

以防有小伙伴没预先安装docker,这里提供安装步骤

# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now

# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2 创建docker network(单机中使用)

docker network create mynet01

2. 单机redis

先从简单的引人,注意实际生产过程中并不是都在单机上的(一台机起一个)
在本例子中就使用一主一从来做简单实现(单机下在同一个网络中,也就是刚刚创建好的mynet01)

2.1 主机redis

docker run -d -p 6379:6379 \  # 主机端口映射
-v /app/rd1:/bitnami/redis/data \ # 目录挂载
-e REDIS_REPLICATION_MODE=master \ # 配置环境变量,对应bitnami这个镜像
-e REDIS_PASSWORD=123456 \ 
--network mynet01 --name redis01 bitnami/redis
2.1.1 bug – 启动报错无访问权限

启动后通过docker ps并没有看到前面运行的实例,这是由于从内部访问写配置文件并不是root用户,所以需要更改权限(同下)

chmod -R 777 rd1

docker restart redis02

2.2 从机redis

从机配置的东西就多了,需要配置好主机的host、端口号、密码等信息

docker run -d -p 6380:6379 \ # 主机端口映射
 -v /app/rd2:/bitnami/redis/data \ # 目录挂载
 -e REDIS_REPLICATION_MODE=slave \
 -e REDIS_MASTER_HOST=redis01 \ # 主机的ip
 -e REDIS_MASTER_PORT_NUMBER=6379 \ # 主机的redis端口
 -e REDIS_MASTER_PASSWORD=123456 \ # 主机redis的密码
 -e REDIS_PASSWORD=123456 \ # 本机redis的密码	
 --network mynet01 --name redis02 bitnami/redis

6.1.3 验证

在从机中输入如下命令访问redis

docker exec -it redis02 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

如果成功的话能看到如下信息
请添加图片描述

3. 多机redis

有了前面单机的引入,多机之前的主从集群搭建其实就是用host来绑定对应机器的ip地址,具体如下
在本例子中还是使用一主一从来搭建主从集群,其中主机的ip是192.168.187.128
具体的ip根据自己申请的服务器确定,如果是本机上开的虚拟机可以ifconfig查看

3.1 主机redis

因为是不同机器无需通过network

docker run -d -p 6379:6379  \
-v /app/rd1:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=master \ 
-e REDIS_PASSWORD=123456  --name redis01 bitnami/redis 

3.2 从机redis

其实就跟单机的类似,只不过host这里换成主机的ip地址,这样就可以通过网络访问到主机上了

docker run -d -p 6380:6379 \
-v /app/rd2:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=slave  \
-e REDIS_MASTER_HOST=192.168.187.128 \ # 注意这里的host地址为主机的ip地址
-e REDIS_MASTER_PORT_NUMBER=6379 \
-e REDIS_MASTER_PASSWORD=123456 \
-e REDIS_PASSWORD=123456 --name redis02 bitnami/redis

3.3 测试

首先进入主机redis

docker exec -it redis01 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

再进入从机redis

docker exec -it redis02 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

如果成功将会看到如下主从集群信息
在这里插入图片描述如果还不放心,不妨跟我一样在主机中设置一个键值,然后再在从机中获取对应的key,看看是否是你设置的value😉

相关推荐

  1. Redis-主从、哨兵、

    2024-07-11 02:04:01       31 阅读

最近更新

  1. CONFIG_MTD_SPI_NOR_USE_4K_SECTORS

    2024-07-11 02:04:01       0 阅读
  2. 网络通信协议

    2024-07-11 02:04:01       0 阅读
  3. opencv 使用XML和YAML格式来输入输出文件

    2024-07-11 02:04:01       0 阅读
  4. css2024

    2024-07-11 02:04:01       0 阅读
  5. Jangow

    Jangow

    2024-07-11 02:04:01      0 阅读
  6. new一个对象的具体步骤

    2024-07-11 02:04:01       0 阅读
  7. Hive 的 classpath 简介

    2024-07-11 02:04:01       0 阅读

热门阅读

  1. Flutter——最详细(GestureDetector)使用教程

    2024-07-11 02:04:01       5 阅读
  2. Jenkins构建python项目

    2024-07-11 02:04:01       5 阅读
  3. 使用nodejs进行截图

    2024-07-11 02:04:01       6 阅读
  4. nginx部署vue项目

    2024-07-11 02:04:01       7 阅读
  5. 【网络】SCTP协议概念

    2024-07-11 02:04:01       4 阅读
  6. Git 完整的提交规范教程

    2024-07-11 02:04:01       4 阅读
  7. 【Zoom安全解析】深入Zoom的端到端加密机制

    2024-07-11 02:04:01       6 阅读
  8. Qt QSettings 使用详解:跨平台的配置管理

    2024-07-11 02:04:01       6 阅读
  9. Docker Dockerfile:构建与优化

    2024-07-11 02:04:01       4 阅读
  10. 面试题07-09

    2024-07-11 02:04:01       6 阅读
  11. docker里日志分割的方法

    2024-07-11 02:04:01       5 阅读
  12. C#面:解释startup class的configure方法有什么作用?

    2024-07-11 02:04:01       7 阅读