Redis集群安装

252 阅读2分钟

Redis集群安装

#创建文件目录
mkdir -p /var/local/redis/r1/data
mkdir -p /var/local/redis/r2/data
mkdir -p /var/local/redis/r3/data
mkdir -p /var/local/redis/r4/data
mkdir -p /var/local/redis/r5/data
mkdir -p /var/local/redis/r6/data

准备Redis配置文件,需要准备6份,第一份:

执行命令 vi /var/local/redis/r1/redis.conf 内容为:

port 7001
bind 0.0.0.0
protected-mode no
databases 1
appendonly yes
#开启集群
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000

配置文件注意路径不同,端口号为7001~7006

编写 vim /var/local/redis/docker-compose.yml ,内容为:

version: "3.2"
services:
  redis1:
    container_name: redis1
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r1/redis.conf:/config/redis.conf
      - /var/local/redis/r1/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always
  redis2:
    container_name: redis2
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r2/redis.conf:/config/redis.conf
      - /var/local/redis/r2/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always
  redis3:
    container_name: redis3
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r3/redis.conf:/config/redis.conf
      - /var/local/redis/r3/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always
  redis4:
    container_name: redis4
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r4/redis.conf:/config/redis.conf
      - /var/local/redis/r4/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always
  redis5:
    container_name: redis5
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r5/redis.conf:/config/redis.conf
      - /var/local/redis/r5/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always
  redis6:
    container_name: redis6
    image: redis:5.0.9
    network_mode: host
    volumes:
      - /var/local/redis/r6/redis.conf:/config/redis.conf
      - /var/local/redis/r6/data:/data
    command: [ "redis-server", /config/redis.conf ]
    restart: always

执行服务编排:

#进入指定路径
cd /var/local/redis/redis
​
#服务编排启动Redis集群
docker-compose up -d

启动集群:

# 进入容器内部
docker exec -it redis1 /bin/bash
​
#执行Redis集群创建命令,注意要修改所有的47.110.58.254为自己设备的实际IP,如果使用云服务器,则使用公网IP
redis-cli --cluster create 47.110.58.254:7001 47.110.58.254:7002 47.110.58.254:7003 47.110.58.254:7004 47.110.58.254:7005 47.110.58.254:7006 --cluster-replicas 1
​
#集群节点信息
redis-cli -p 7001 cluster nodes
​
# 连接集群
redis-cli -h 127.0.0.1 -p 7001 -c

如果卡在 Waiting for the cluster to join 这一步,检查端口号是否开放。redis集群除了需要使用7001到7006,还需要开通集群总线端口,端口号为redis端口号+10000 在这里就是端口号为17001到17006的都需要开放

注意:

集群启动成功后,需要在宿主机中检查集群节点的配置文件(Ctrl+d可以退出容器)

#查看配置文件命令:
cat /var/local/redis/r1/data/nodes.conf
​
# 如果出现内网IP(例如172.x.x.x),则需要修改宿主机的集群配置文件
# 检查6个配置文件,把所有的内网IP都改为当前公网IP
# 在宿主机分别执行以下命令,分别进行修改:
vi /var/local/redis/r1/data/nodes.conf
vi /var/local/redis/r2/data/nodes.conf
vi /var/local/redis/r3/data/nodes.conf
vi /var/local/redis/r4/data/nodes.conf
vi /var/local/redis/r5/data/nodes.conf
vi /var/local/redis/r6/data/nodes.conf
​
#进入指定路径
cd /var/local/redis/redis
​
#服务编排停止Redis集群并删除容器
docker-compose down
​
#服务编排启动Redis集群
docker-compose up -d

因为docker默认采用的桥接方式,桥接到docker虚拟网卡,所以这一步务必修改,不然从项目连接到redis集群就会报错 集群启动后,使用docker -ps查看启动情况

image.png