目录
转载请注明出处
参考链接
- https://hubgw.docker.com/_/redis
获取镜像
docker pull redis:7.2.4
单机部署
Docker
docker run -itd \
--name redis-7-2-4 \
--restart=on-failure:3 \
-p 16379:6379 \
-v /docker_data/redis:/data \
redis:7.2.4 \
--save 60 1 \
--requirepass "123456"
Docker Compose 单节点部署(host模式)
创建 docker-compose.yml 文件内容如下
version: '3'
services:
redis:
image: redis:7.2.4
container_name: redis
restart: on-failure:3
# ports:
# - 16379:6379
network_mode: host
volumes:
- /docker_data/redis:/data
command: redis-server --save 60 1 --requirepass '123456'
# 部署
docker compose up -d
# 卸载
docker compose down
Docker Compose 单节点部署(bridge模式)
创建 docker-compose.yml 文件内容如下
version: '3'
services:
redis:
image: redis:7.2.4
container_name: redis
restart: on-failure:3
ports:
- 16379:6379
volumes:
- /docker_data/redis:/data
command: redis-server --save '3600 1 300 100 60 10000' --requirepass '123456'
# 部署
docker compose up -d
# 卸载
docker compose down
Docker Compose 主从部署(bridge模式)
创建 docker-compose.yml 文件内容如下
version: '3'
services:
redis-master:
container_name: redis-master
image: redis:7.2.4
restart: on-failure:3
ports:
- 16379:6379
volumes:
- /docker_data/redis_master:/data
command: redis-server --save '3600 1 300 100 60 10000' --requirepass 'Uino@2024'
redis-follower:
container_name: redis-follower
image: redis:7.2.4
restart: on-failure:3
ports:
- 26379:6379
volumes:
- /docker_data/redis_follower:/data
command: redis-server --save '3600 1 300 100 60 10000' --replicaof '10.100.30.99 16379' --masterauth 'Uino@2024' --requirepass 'Uino@2024'
depends_on:
- "redis-master"
# 部署
docker compose up -d
# 卸载
docker compose down
补充说明
参数说明
- save 3600 1:表示在3600秒(1小时)内,如果至少有1个key发生变化,则执行一次RDB持久化操作。这意味着如果在1小时内至少有1个key被修改、添加或删除,Redis将执行一次RDB持久化操作。
- save 300 100:表示在300秒(5分钟)内,如果至少有100个key发生变化,则执行一次RDB持久化操作。这意味着如果在5分钟内至少有100个key被修改、添加或删除,Redis将执行一次RDB持久化操作。
- save 60 10000:表示在60秒内,如果至少有10000个key发生变化,则执行一次RDB持久化操作。这意味着如果在1分钟内至少有10000个key被修改、添加或删除,Redis将执行一次RDB持久化操作。
- replicaof: 从节点配置主节点得地址
- masterauth: 从节点配置主节点密码
挂载外部配置部署示例
# 挂载外部配置
docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis:7.2.4 redis-server /usr/local/etc/redis/redis.conf
持久化日志配置示例
services:
tarsier-redis:
image: redis:7.2.4
container_name: tarsier-redis
restart: on-failure:3
privileged: true
user: '0'
environment:
- TZ=Asia/Shanghai
network_mode: host
command: |
sh -c "
redis-server --logfile '/logs/redis-server.log' --loglevel 'verbose' --save '3600 1 300 100 60 1000' --requirepass ${INSTALL_REDIS_PASSWD} --port ${INSTALL_PORT_REDIS_SERVER} ${INSTALL_REDIS_FOLLOWER_COMMAND}
"
# command: |
# sh -c "
# if [ ! -d '/logs' ]; then
# mkdir -p /logs
# fi
# chmod 777 /logs
# redis-server --logfile '/logs/redis-server.log' --loglevel 'verbose' --save '3600 1 300 100 60 1000' --requirepass ${INSTALL_REDIS_PASSWD} --port ${INSTALL_PORT_REDIS_SERVER} ${INSTALL_REDIS_FOLLOWER_COMMAND}
# "
# command: redis-server --save '3600 1 300 100 60 1000' --requirepass ${INSTALL_REDIS_PASSWD} --port ${INSTALL_PORT_REDIS_SERVER} ${INSTALL_REDIS_FOLLOWER_COMMAND}
volumes:
- ${INSTALL_STORAGE_ROOT_DIR}/redis:/data
- ${INSTALL_LOGS_ROOT_DIR}/redis:/logs
healthcheck:
test: ["CMD-SHELL", "redis-cli -a ${INSTALL_REDIS_PASSWD} --no-auth-warning -p ${INSTALL_PORT_REDIS_SERVER} ping | grep -q PONG || exit 1"]
start_period: 30s
interval: 10s
timeout: 10s
retries: 5