docker搭建redis三主三从集群,及其常见问题解决

这篇具有很好参考价值的文章主要介绍了docker搭建redis三主三从集群,及其常见问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

目录结构

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器
docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

redis.conf主要参数

每个配置文件都要修改对应的端口

bind 0.0.0.0
protected-mode no
#每个配置文件都要修改端口
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
supervised no
loglevel notice
#日志文件路径
#logfile "/mydata/master_redis/log/6379.log"
databases 16
always-show-logo yes
save ""
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
masterauth "admin"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
#slaveof ip1 6379
#slave-announce-ip ip1
#slave-announce-port 6379

#配置密码
requirepass "admin"

#配置集群相关
cluster-enabled yes
cluster-config-file node.conf
cluster-node-timeout 5000


#开启aof
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

aof-rewrite-incremental-fsync yes

docker-compose.yml

version: '3.1'
services:
  cluster_redis_6379:
    image: redis:latest
    container_name: cluster_redis_6379
    # network_mode: "host"
    restart: always
    ports:
      - 6379:6379
      - 16379:16379
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6379:/data
      - ./conf/redis_6379.conf:/etc/redis/redis.conf

  cluster_redis_6380:
    image: redis:latest
    container_name: cluster_redis_6380
    # network_mode: "host"
    restart: always
    ports:
      - 6380:6380
      - 16380:16380
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6380:/data
      - ./conf/redis_6380.conf:/etc/redis/redis.conf

  cluster_redis_6381:
    image: redis:latest
    container_name: cluster_redis_6381
    # network_mode: "host"
    restart: always
    ports:
      - 6381:6381
      - 16381:16381
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6381:/data
      - ./conf/redis_6381.conf:/etc/redis/redis.conf

  cluster_redis_6382:
    image: redis:latest
    container_name: cluster_redis_6382
    # network_mode: "host"
    restart: always
    ports:
      - 6382:6382
      - 16382:16382
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6382:/data
      - ./conf/redis_6382.conf:/etc/redis/redis.conf

  cluster_redis_6383:
    image: redis:latest
    container_name: cluster_redis_6383
    # network_mode: "host"
    restart: always
    ports:
      - 6383:6383
      - 16383:16383
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6383:/data
      - ./conf/redis_6383.conf:/etc/redis/redis.conf

  cluster_redis_6384:
    image: redis:latest
    container_name: cluster_redis_6384
    # network_mode: "host"
    restart: always
    ports:
      - 6384:6384
      - 16384:16384
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./data/data_6384:/data
      - ./conf/redis_6384.conf:/etc/redis/redis.conf

容器内端口不能都是是6379,集群总线接口是端口号+10000
端口号与network_mode: "host"不能一起配置,出现下述问题“主机”网络模式与端口绑定不兼容问题,具体看github,有对应解释。

ERROR: for cluster_redis_6379  "host" network_mode is
 incompatible with port_bindings

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

https://github.com/docker/compose/issues/8326

启动redis容器

docker-compose up -d

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

进入容器

 docker exec -it cluster_redis_6379 bash

搭建集群

 redis-cli -a admin --cluster create \
  47.120.0.38:6379 \
  47.120.0.38:6380 \ 
  47.120.0.38:6381 \ 
  47.120.0.38:6382 \
  47.120.0.38:6383 \
  47.120.0.38:6384 \
  --cluster-replicas 1   #一个主节点分配一个从节点

集群节点分配结果

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

集群槽位分配结果

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

遇到的问题

如果一直卡在Waiting for the cluster to join,那一般是端口问题,看看集群总线端口是否开启,我在这遇到问题,修改了redis.conf中的端口,将容器中端口都是6379改成不同的,并且在docker-compose.yml的port中,加上各个节点的总线端口好了。

查看集群所有节点的关系

cluster nodes

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

查看单个节点信息

 info replication

docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器

集群数据库数量问题

Response received : -ERR SELECT is not allowed in cluster mode

在集群模式下这个配置是不起作用的,集群客户端是不支持多数据库db的,只有一个数据库默认是SELECT 0;
docker搭建redis三主三从集群,及其常见问题解决,docker,redis,容器
在某个控制台里,比如6379,如果存放的key值对应的槽位不在6379的槽位之中,是不能存放的文章来源地址https://www.toymoban.com/news/detail-667969.html

127.0.0.1:6379> set 222 222
(error) MOVED 7715 47.120.0.38:6380

到了这里,关于docker搭建redis三主三从集群,及其常见问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云服务器上使用Docker Compose创建Redis三主三从集群

    云服务器 Ubuntu20.4 Dokcer 24.0.2 目录结构是这样: 绿色的目录是用来存储容器中的文件,不需要我们手动创建,将路径配置在配置文件中即可。黑色的目录和文件需要自己手动创建。  我们一共创建7个容器: redis1~redis6是集群节点,redis_cluster是用来搭建主从关系的一个容器,搭

    2024年02月09日
    浏览(65)
  • redis三主三从详细搭建过程

    搭建Redis三主三从集群的详细步骤如下: 准备环境: 确保你有六台服务器或虚拟机,每台服务器上都已经安装了Redis。这些服务器将用于搭建三主三从的Redis集群。 确保所有服务器之间的网络连接正常,并且防火墙设置允许Redis通信。 安装Redis: 在每台服务器上下载并安装

    2024年03月10日
    浏览(40)
  • 【kubernetes】k8s高可用集群搭建(三主三从)

    目录 【kubernetes】k8s高可用集群搭建(三主三从) 一、服务器设置 二、环境配置 1、关闭防火墙 2、关闭selinux 3、关闭swap 4、修改主机名(根据主机角色不同,做相应修改) 5、主机名映射 6、将桥接的IPv4流量传递到iptables的链 7、时间同步 8、master之间进行免密登录设置 三、

    2024年02月09日
    浏览(31)
  • Redis分片集群搭建及其原理

    主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决: 海量数据存储问题 高并发写的问题 使用分片集群可以解决上述问题,如图: 分片集群特征: 集群中有多个master,每个master保存不同数据 每个master都可以有多个slave节点 master之间通过ping监测彼此

    2024年02月05日
    浏览(28)
  • Redis持久化说明及其单台Linux服务器搭建Redis集群架构

    说明:RDB快照主要以二进制文件的形式进行存储数据,主要以文件名dump.rdb进行存储,主要设置redis.conf里面设置’save 60 1000’命令可以开启, 表示在60秒内操作1000次进行一次备份数据。在客户端执行save(同步)和bgsave(异步操作)。 redis.conf 启动redis相关命令 说明:主要把文件生

    2024年02月10日
    浏览(45)
  • 【redis】docker搭建redis集群

    docker搭建redis集群,超级简单方便。 参考文章: Redis 集群搭建详细指南 基于Docker的Redis集群搭建 redis: (error) CLUSTERDOWN The cluster is down Redis cluster集群模式的原理解析

    2024年02月14日
    浏览(28)
  • docker搭建redis集群

    1、配置文件 使用docker搭建redis集群必须要配置的内容,搭建几个集群,就需要几个配置文件。 配置文件中本节点 IP(cluster-announce-ip)、 端口(cluster-announce-port)、 总线端口(cluster-announce-bus-port) 需要单独配置,配置为 实际可访问到服务的地址 ,即docker映射后的端口。

    2024年03月15日
    浏览(34)
  • docker下搭建redis集群

    准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。学习docker基础知识可以参考这篇博文 安装好并启动docker后就可以开始搭建redis了 本篇文章我们安装redis6.0.6版本,执行以下命令直接下载redis6.0.6版本镜像 安装

    2024年02月04日
    浏览(26)
  • Docker 搭建Redis Cluster 集群

    环境: centos7 redis:7.0.5 三主三从,六个节点 一、下载redis镜像 docker pull redis:7.0.5 二、创建虚拟网卡 网卡类型为bridge桥接类型 三、准备redis配置文件 redis.conf 配置解释: port :节点端口; requirepass :设置密码,访问时需要验证 masterauth: 设置主从复制密码 protected-mode :保护模

    2024年02月09日
    浏览(29)
  • 使用Docker搭建Redis主从集群

    欢迎来到 请回答1024 的博客 🍓🍓🍓欢迎来到 请回答1024的博客 关于博主 : 我是 请回答1024 ,一个追求数学与计算的边界、时间与空间的平衡,0与1的延伸的后端开发者。 博客特色 : 在我的博客中,开设了如下专栏( 点击可以进入专栏奥~ ): Java、MySQL、Redis、Spring、SpringB

    2024年04月24日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包