docker搭建redis集群

docker搭建redis集群


本文学习 https://www.cnblogs.com/wozijisun/p/6043511.html, 进行实践记录


  • 编译redis源码

redis各版本下载地址:http://download.redis.io/releases/

mkdir -p /root/d-server/redis/cluster;
cd /root/d-server/redis/cluster;
wget http://download.redis.io/releases/redis-3.0.7.tar.gz;
tar xvf redis-3.0.7.tar.gz;
cd redis-3.0.7;
#若未安装gcc  yum install -y gcc
make
  • 修改redis配置文件
cp ./redis-3.0.7/redis.conf ../;
-----------------------------
daemonize no                      #是否后台允许
port 6379
logfile "/var/log/redis/redis-server.log" #日志路径
appendonly yes                    #是否开启操作记录日志
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000         #集群节点超时限制
-----------------------------
  • 使用alpine底包制作redis节点镜像
# DockerFile
FROM 47.1.2.1:8888/dyiwen/alpine:laster  #一个alpine底包
RUN apk add gcc
RUN apk add make
RUN mkdir -p /redis/conf
ADD redis-3.0.7.tar.gz /
RUN mv redis-3.0.7.tar.gz redis
RUN cd redis/ && make
RUN mkdir -p /redis/conf
ADD redis.conf /redis/conf
RUN apk del gcc
RUN apk del make
WORKDIR /redis
ENTRYPOINT ["/redis/redis-server", "/redis/conf/
EXPOSE 6379
----------------------------------------------------
#制作基础镜像
docker build -t redis-node:apline-307 .
  • 依次创建各节点的映射配置文件
    在这里插入图片描述
  • 创建docker-compose文件
version: '3.4'
services:
  redis01:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis01
    ports:
      - 30001:7001
    volumes:
      - /root/d-server/redis/cluster/conf/7001:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"

  redis02:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis02
    volumes:
      - /root/d-server/redis/cluster/conf/7002:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"

  redis03:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis03
    volumes:
      - /root/d-server/redis/cluster/conf/7003:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"

  redis04:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis04
    volumes:
      - /root/d-server/redis/cluster/conf/7004:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"

  redis05:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis05
    volumes:
      - /root/d-server/redis/cluster/conf/7005:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"

  redis06:
    restart: always
    image: redis-node:apline-307
    network_mode: "host"
    container_name: redis06
    volumes:
      - /root/d-server/redis/cluster/conf/7006:/redis/conf
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "10"
  • 查看redis各节点的IP地址

docker inspect redis01 redis02 redis03 redis04 redis05 redis06 | grep “IPAddress”| grep 172

  • 安装ruby环境
yum install -y ruby;
yum install -y rubygems;
ruby -v    #查看版本  要求大于等于1.9
#安装redis的ruby包
wget https://rubygems.org/downloads/redis-3.0.7.gem --no-check-certificate;
gem install -l redis-3.0.7.gem;
  • 启动集群
cd /root/d-server/redis/cluster/redis-3.0.7/src;
./redis-trib.rb create --replicas 1 172.21.0.2:6379 \
172.21.0.3:6379 \
172.21.0.4:6379 \
172.21.0.5:6379 \
172.21.0.6:6379 \
172.21.0.7:6379

在这里插入图片描述

  • 连接集群,查看集群信息
redis-cli -p 30001 –c
127.0.0.1:30001> info
127.0.0.1:30001> CLUSTER INFO 打印集群的信息
127.0.0.1:30001> CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值