关于redis:基于Docker搭建Redis集群

3次阅读

共计 2271 个字符,预计需要花费 6 分钟才能阅读完成。

先决条件

装置 docker、docker-compose.


docker-compose.yml 文件
version: '3'
services:
  redis-node01:
    container_name: redis-node01
    image: docker.io/redis:6.0.7-alpine
    ports:
      - "6378:6379"
    volumes:
      - /data/redis/data/master:/data
      - /data/redis/config:/usr/local/etc/redis
    networks:
      - redis-network
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
    labels:
      registory: 'office-registry'
      editor: 'huyindu'
  redis-node02:
    container_name: redis-node02
    image: docker.io/redis:6.0.7-alpine
    ports:
      - "6377:6379"
    volumes:
      - /data/redis/data/slave01:/data
      - /data/redis/config:/usr/local/etc/redis
    networks:
      - redis-network
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
    labels:
      registory: 'office-registry'
      editor: 'huyindu'
  redis-node03:
    container_name: redis-node03
    image: docker.io/redis:6.0.7-alpine
    ports:
      - "6376:6379"
    volumes:
      - /data/redis/data/slave02:/data
      - /data/redis/config:/usr/local/etc/redis
    networks:  - redis-network
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes --appendfsync everysec
    labels:
      registory: 'office-registry'
      editor: 'huyindu'
networks:
  redis-network:
    driver: bridge
批改 Redis 配置文件

咱们先下载 Redis 的官网配置文件,下载地址:http://download.redis.io/redis-stable/redis.conf

批改局部配置
cluster-enabled yes #启用集群
bind 0.0.0.0    #默认 127.0.0.1 只能本地拜访,改为 0.0.0.0,所有主机都能拜访 
通过 docker-compose 装置 redis 节点

在 docker-compose.yml 所在目录下执行如下命令:docker-compose up -d. 执行后会运行三个 redis 节点, 别离为 redis-node01、redis-node02、redis-node03.
注:此时的三个 redis 节点是互相独立的,还不是集群。

将多个 node 节点组成集群

进入任意一个节点容器,执行一下命令,ip 地址替换成你本身的节点 IP,IP 是生成的三个节点的容器外部 IP,能够通过执行 `docker
inspect docker 容器 id | grep Address` 查看容器 IP 信息

redis-cli --cluster create 172.18.0.4:6379 172.18.0.3:6379 172.18.0.2:6379 -- cluster-replicas 0

在节点容器内输出 redis-cli -c,查看集群信息 cluster info,

cluster_state:ok  #<--- 如果此处为 ok 阐明集群创立胜利
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:3
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:1
cluster_stats_messages_ping_sent:218
cluster_stats_messages_pong_sent:217
cluster_stats_messages_sent:435
cluster_stats_messages_ping_received:215
cluster_stats_messages_pong_received:218
cluster_stats_messages_meet_received:2
cluster_stats_messages_received:435

此时通过 set 设置 key-value 的时候,就会将 key-value 增加到 3 个不同的节点中去了,三个节点的总 key 数就是全量 key, 每个节点仅存储各自的 key 汇合,然而在集群不同节点都能够 get 到其余节点 key 的 value 值。

正文完
 0