Docker搭建Redis集群

Docker搭建Redis集群

1. 安装Redis

  1. 拉取redis官方镜像
    docker pull redis
    
  2. 查看镜像
    docker images
    
  3. 启动redis
    docker run -it -p 6379:6379 --name myredis docker.io/redis
    
  4. 查看redis服务
    docker ps
    
  5. 测试
    docker exec -it [容器id] redis-cli
    

2. 搭建集群

以搭建6个节点,三主三从结构为例,分如下步骤

  1. 创建目录myredis,并创建服务节点子目录,这里我们创建6个子目录slave01、slave02、slave03、slave04、slave05、slave06

  2. 下载配置文件redis.conf到myredis中

    wget http://download.redis.io/redis-stable/redis.conf
    
  3. 修改配置文件redis.conf
    修改后的配置文件需要copy到slave目录中,以slave01为例,修改内容参考

    # bind 127.0.0.1 						// 注释掉,表示默认所有ip都能访问该redis服务
    protected-mode no 						// 关闭保护模式,开启可能导致无法通过公网访问
    port 6381  								// 自定义端口
    pidfile /var/run/redis_6381.pid 		// 将文件名加上当前端口名
    cluster-enabled yes 					// 开启集群
    cluster-config-file nodes-6381.conf 	// 集群的配置文件,首次启动会自动生成 
    
  4. 编写dockerfile,以slave01为例

    FROM docker.io/redis
    
    # 复制上一步修改的配置文件到redis中
    COPY redis.conf /usr/local/etc/redis/redis.conf
    
    # 修改文件权限,后面设置密码可以通过config rewrite重写
    RUN chmod 777 /usr/local/etc/redis/redis.conf
    
    # Redis客户端连接端口
    EXPOSE 6381
    # 集群总线端口
    EXPOSE 16381
    
    # 启动redis服务
    CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
    
  5. 编写docker-compose.yml,注意该文件的位置
    在这里插入图片描述

    version: '3'     
    services:
      redis-slave1:
        network_mode: "host"
        build: ./slave01
        volumes:
         - ./data/slave01:/data
        ports:
         - 6381:6381
         - 16381:16381
        privileged: true     # CentOS7中的安全模块selinux把权限禁掉了
      redis-slave2:
        network_mode: "host"
        build: ./slave02
        volumes:
         - ./data/slave02:/data
        ports:
         - 6382:6382
         - 16382:16382
        privileged: true
      redis-slave3:
        network_mode: "host"
        build: ./slave03
        volumes:
         - ./data/slave03:/data
        ports:
         - 6383:6383
         - 16383:16383
        privileged: true
      redis-slave4:
        network_mode: "host"
        build: ./slave04
        volumes:
         - ./data/slave04:/data
        ports:
         - 6384:6384
         - 16384:16384
        privileged: true
      redis-slave5:
        network_mode: "host"
        build: ./slave05
        volumes:
         - ./data/slave05:/data
        ports:
         - 6385:6385
         - 16385:16385
        privileged: true
      redis-slave6:
        network_mode: "host"
        volumes:
         - ./data/slave06:/data
        build: ./slave06
        ports:
         - 6386:6386
         - 16386:16386
        privileged: true
    
  6. 启动服务

    docker-compose up -d
    
  7. 创建集群
    redis-trib 是redis官方提供的一个集群管理工具

    docker run --rm -it zvelo/redis-trib create --replicas 1 [ip]:6381 [ip]:6382 [ip]:6383 [ip]:6384 [ip]:6385 [ip]:6386
    
  8. 验证集群
    连接任何一个redis服务,查看集群信息,然后测试数据操作

    cluster info
    
  9. 设置集群密码
    连接每台redis节点服务,做以下操作,注意每个节点密码保持一致

    config set masterauth [密码]
    config set requirepass [密码]
    auth [密码]
    config rewrite						// 回写到文件/usr/local/etc/redis/redis.conf 
    
  10. 重启集群

    docker-compose restart
    

    重启后集群依然正常工作则大功告成

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bili青青菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值