基于Docker的Redis集群搭建

Redis集群搭建

基于 CentOS 7 + Docker 19.03.13

# 部署Redis集群,该集群有3个节点
docker create --name redis-node01 --restart=always --net host -v redis-node01:/data redis --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379

docker create --name redis-node02 --restart=always --net host -v redis-node02:/data redis --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380

docker create --name redis-node03 --restart=always --net host -v redis-node03:/data redis --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381

# restart=always 启动虚拟机的时候,集群自动运行
# net host 表示采用主机网络模式,和主机共享网络资源,比如6379端口自动映射到主机的6379端口
# redis-node01:/data redis 默认挂载的目录/var/lib/docker/volumes/redis-node01/_data
# cluster-enabled yes 表示开启集群支持
# docker inspect 容器名 查询默认挂载目录

# 启动容器
docker start redis-node01 redis-node02 redis-node03

# 进入redis-node01容器进行操作
docker exec -it redis-node01 /bin/bash

# 组建集群
redis-cli --cluster create 192.168.241.100:6379 192.168.241.100:6380 192.168.241.100:6381 --cluster-replicas 0

# 192.168.241.100 虚拟机ip地址
# cluster-replicas 0 表示没有从机(0) cluster-replicas 1 表示一主一从(1)

# 进入集群
redis-cli -c
# cluster nodes 查询集群信息(进入集群中才能使用)

# 停止集群
docker stop redis-node01 redis-node02 redis-node03

# 删除集群
docker rm redis-node01 redis-node02 redis-node03

# 清理挂载数据
docker volume prune

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis集群是一组相互独立但协同工作的Redis实例,可以通过分区(partition)方式实现数据的水平扩展,提高Redis的性能和可用性。下面是一个基于DockerRedis集群搭建步骤: 1. 安装DockerDocker Compose。 2. 创建一个Docker Compose文件,并定义一个Redis集群服务: ``` version: '3' services: redis-1: image: redis:latest command: redis-server --port 6379 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6379:6379" volumes: - ./data/redis-1:/data redis-2: image: redis:latest command: redis-server --port 6380 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6380:6380" volumes: - ./data/redis-2:/data redis-3: image: redis:latest command: redis-server --port 6381 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6381:6381" volumes: - ./data/redis-3:/data redis-4: image: redis:latest command: redis-server --port 6382 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6382:6382" volumes: - ./data/redis-4:/data redis-5: image: redis:latest command: redis-server --port 6383 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6383:6383" volumes: - ./data/redis-5:/data redis-6: image: redis:latest command: redis-server --port 6384 --cluster-enabled yes --cluster-config-file /data/nodes.conf --cluster-node-timeout 5000 --appendonly yes ports: - "6384:6384" volumes: - ./data/redis-6:/data ``` 3. 运行Docker Compose文件: ``` docker-compose up -d ``` 4. 进入其中一个Redis实例,并创建一个Redis集群: ``` docker exec -it redis-1 redis-cli --cluster create 172.18.0.2:6379 172.18.0.3:6380 172.18.0.4:6381 172.18.0.5:6382 172.18.0.6:6383 172.18.0.7:6384 --cluster-replicas 1 ``` 5. 测试Redis集群的连接和读写操作。 6. 可以通过增加或减少Redis实例的数量来扩展或缩小Redis集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值