Redis集群部署
Docker镜像
docker pull redis:6.2.1
镜像导出命令
docker save redis:6.2.1 -o redis:6.2.1.tar
镜像导入命令
docker load -i redis:6.2.1.tar
集群服务规划
IP | 模式 | 主从关系 | 服务端口/集群端口 | 配置文件 | 数据目录 |
---|---|---|---|---|---|
3.1.101.33 | 主 | 3.1.101.34(从) | 6379/16379 | /data/redis/master/conf/redis.conf | /data/redis/master/data |
3.1.101.34 | 主 | 3.1.101.35(从) | 6379/16379 | /data/redis/master/conf/redis.conf | /data/redis/master/data |
3.1.101.35 | 主 | 3.1.101.33(从) | 6379/16379 | /data/redis/master/conf/redis.conf | /data/redis/master/data |
3.1.101.33 | 从 | 3.1.101.35(主) | 26379/36379 | /data/redis/slave/conf/redis.conf | /data/redis/slave/data |
3.1.101.34 | 从 | 3.1.101.33(主) | 26379/36379 | /data/redis/slave/conf/redis.conf | /data/redis/slave/data |
3.1.101.35 | 从 | 3.1.101.34(主) | 26379/36379 | /data/redis/slave/conf/redis.conf | /data/redis/slave/data |
创建目录
mkdir -pv /data/redis/{master,slave}/{data,conf,logs}
mkdir -pv /data/docker-compose/redis/
配置文件修改
主
bind 3.1.101.33
protected-mode no
port 6379
daemonize no
pidfile /data/redis/master/logs/redis_6379.pid
logfile "/data/redis/master/logs/redis-6379.log"
dir /data/redis/master/data
requirepass g1tredis2o2l
masterauth g1tredis2o2l
appendonly yes
appendfilename "appendonly.aof"
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 5000
从redis配置和主几乎一样,只有如下有些变化
bind 3.1.101.33 port 26379 pidfile /data/redis/slave/logs/redis_26379.pid logfile "/data/redis/slave/logs/redis-26379.log" dir /data/redis/slave/data cluster-config-file nodes-26379.conf
docker-compose编排
示例
version: "3"
services:
redis-master:
container_name: redis-master
image: redis:6.2.1
network_mode: host
restart: always
volumes:
- /data/redis:/data/redis
- /etc/localtime:/etc/localtime
sysctls:
- net.core.somaxconn=1024
command: "redis-server /data/redis/master/conf/redis.conf"
redis-slave:
container_name: redis-slave
image: redis:6.2.1
network_mode: host
restart: always
volumes:
- /data/redis:/data/redis
- /etc/localtime:/etc/localtime
sysctls:
- net.core.somaxconn=1024
command: "redis-server /data/redis/slave/conf/redis.conf"
docker-compose命令
创建/更新:
docker-compose up -d
删除容器
docker-compose down
启停示例
docker-compose start/stop redis-master
集群创建
进入任意一台redis-m
redis-cli -a g1tredis2o2l --cluster create --cluster-replicas 1 3.1.101.33:6379 3.1.101.34:6379 3.1.101.35:6379 3.1.101.34:26379 3.1.101.35:26379 3.1.101.33:26379
查看集群状态
redis-cli -a g1tredis2o2l -h 3.1.101.33 -p 6379 cluster info
redis-cli -a g1tredis2o2l -h 3.1.101.34 -p 6379 cluster nodes
登录集群
./redis-cli -a g1tredis2o2l -c -h 3.1.101.35 -p 6379