Redis-compose集群搭建
Redis集群至少要三个master节点,并且为每个master创建一个slave节点,总共6个Redis节点.三主三从
1.创建Redis节点安装目录
mkdir /opt/docker-redis-cluster
2、在文件夹下创建docker-compose.yml文件写入以下值(6份)改变端口和数据卷的映射路径为对应的端口号
services:
redis-6381:
container_name: redis-6381
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6381/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6381/data:/data
redis-6382:
container_name: redis-6382
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6382/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6382/data:/data
redis-6381:
container_name: redis-6381
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6381/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6381/data:/data
redis-6383:
container_name: redis-6383
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6383/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6383/data:/data
redis-6384:
container_name: redis-6384
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6384/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6384/data:/data
redis-6385:
container_name: redis-6385
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6385/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6385/data:/data
redis-6386:
container_name: redis-6386
image: redis
command: redis-server /etc/usr/local/redis.conf
network_mode: "host"
volumes:
- /opt/docker-redis-cluster/redis-6386/redis.conf:/etc/usr/local/redis.conf
- /opt/docker-redis-cluster/redis-6386/data:/data
3、并为每个Redis节点创建一个文件夹 Redis6381-6386
mkdir redis6381
mkdir redis6382
…
4、复制redis文件到为每个节点创建的文件夹下
cp redis.conf /opt/docker-redis-cluster/redis-6381/
…
cp redis.conf /opt/docker-redis-cluster/redis-6386/
关闭保护模式 用于公网访问
protected-mode no
port 6381
开启集群模式
cluster-enabled yes
#不改也可
#cluster-config-file nodes-6381.conf
#cluster-node-timeout 5000
日志文件
pidfile /var/run/redis_6381.pid
此处绑定ip也可以直接注释掉该项
1、#bind 127.0.0.1
#用于连接主节点密码
masterauth 123456
2、#设置redis密码 各个节点请保持密码一致requirepass 123456
3、运行测试
cd /opt/docker-redis-cluster
docker-compose up -d
启动成功,使用docker ps命令查看是否在运行
4、创建集群
输入以下命令创建成功
docker exec -it redis-6381 redis-cli --cluster create -a 123456 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385 127.0.0.1:6386 --cluster-replicas 1
这里是询问是否已当前的主从关系创建集群,输入yes继续,输入no则为重新设置
运行成功
测试