redis部署cluster

docker-compose 部署方式

文件存放位置

 docker-compose.yml

version: '3'
services:
  node1:
    image: redis
    container_name: node1
    restart: always
    ports:
      - 10403:10403
      - 20403:20403
    # 指定时区,保证容器内时间正确
    environment:
       TZ: "Asia/Shanghai"
    sysctls:
       # 必要的内核参数
       net.core.somaxconn: '1024'
    volumes:
      - ./data/node1:/data
      - ./conf/node1.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf
  node2:
    image: redis
    container_name: node2
    restart: always
    ports:
      - 10404:10404
      - 20404:20404
    # 指定时区,保证容器内时间正确
    environment:
       TZ: "Asia/Shanghai"
    sysctls:
       # 必要的内核参数
       net.core.somaxconn: '1024'
    volumes:
      - ./data/node2:/data
      - ./conf/node2.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf
  node3:
    image: redis
    container_name: node3
    restart: always
    ports:
      - 10405:10405
      - 20405:20405
    # 指定时区,保证容器内时间正确
    environment:
       TZ: "Asia/Shanghai"
    sysctls:
       # 必要的内核参数
       net.core.somaxconn: '1024'
    volumes:
      - ./data/node3:/data
      - ./conf/node3.conf:/usr/local/etc/redis/redis.conf
    command: redis-server /usr/local/etc/redis/redis.conf

node1.conf,其余两个套出来

# bind 127.0.0.1
# 关闭保护模式
protected-mode no
# 绑定自定义端口
port 10403
# 禁止redis后台运行
# daemonize yes
pidfile /var/run/redis_10403.pid
# 开启集群
cluster-enabled yes
# 集群的配置 配置文件首次启动自动生成
cluster-config-file nodes_10403.conf
# 开启aof
appendonly yes
# 要宣布的IP地址。nat模式要指定宿主机IP
cluster-announce-ip 192.168.2.126
# 要宣布的数据端口。
cluster-announce-port 10403
# 要宣布的集群总线端口,注意,这里端口必须是数据端口+10000
cluster-announce-bus-port 20403

执行命令

1. docker-compose up -d 启动容器

2. docker exec -it node1 /bin/bash 进入容器

3. redis-cli create --cluste ip:port ip:port ip:port(这里有几个node就填写几个,最少3个)  --cluster-replicas 0(这里是分片,我启动的node少,就没要了)  初始化集群

不初始化,会报集群不能使用

4. redis-cli -h 127.0.0.1 -p 10403 -c 进入命令行,注意,-c是为了接下命令行是cluster命令模式,不然set get 不会自动跳转到对应的node上

5. cluster info 查看相关信息

6. cluster nodes 查看集群中节点信息

原文地址:https://www.cnblogs.com/kongkongFabian/p/12187566.html