使用 Docker-Compose 部署
⚠️部署前须知⚠️
文件中所有内容要根据自己的情况修改,比如说 image、/data地址、端口号、networks、硬件资源等;
环境与系统优化
目录准备
# 创建并切换到项目目录
mkdir -p /data/workspace/install-redis/data && cd /data/workspace/install-redis
系统优化
# 宿主机内核参数优化 (临时生效,重启失效)
# 允许分配所有的物理内存,防止 Redis 尝试快照时因内存不足被 Kill
sysctl -w vm.overcommit_memory=1
# 增加连接队列长度,防止高并发下连接被丢弃
sysctl -w net.core.somaxconn=1024
# (可选) 永久生效设置echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
sysctl -p
准备 Docker Compose 文件
root@edis:# tee /data/workspace/install-redis/docker-compose.yaml >> "EOF"
# version: '3.8'
services:
redis:
# 服务名称
container_name: redis-standalone
# 镜像版本
image: 10.14.0.37/redis/redis-8.4.0:v1 #根据自己镜像仓库设置
restart: always
# 端口映射:主机 3759 -> 容器 6379
ports:
- "3759:6379"
# 环境变量 (仅用于客户端工具的自动认证,不是 Redis 服务端配置)
environment:
- REDISCLI_AUTH=redis@!QAZxsw2
- TZ=Asia/Shanghai
# 数据卷挂载
volumes:
- /data/workspace/install-redis/data:/data
# --- 生产环境系统级限制解锁 ---
# 增加最大文件打开数,高并发必备
ulimits:
nofile:
soft: 65536
hard: 65536
# 容器内的内核参数优化
sysctls:
# 增加容器内的连接队列长度
net.core.somaxconn: 1024
# --- Redis 核心启动命令 (企业级参数配置) ---
command:
- "redis-server"
# 1. 基础认证
- "--requirepass redis@!QAZxsw2"
# 2. 数据持久化策略 (AOF + RDB 混合模式)
- "--appendonly yes" # 开启 AOF (数据更安全)
- "--appendfsync everysec" # 每秒刷盘一次,平衡性能与安全
- "--save 900 1" # 15分钟内有1个key变动则生成RDB快照
- "--save 300 10" # 5分钟内有10个key变动则生成RDB快照
# 3. 内存管理 (非常重要)
# 限制最大内存,防止把服务器内存撑爆。建议设置为物理内存的 75% 左右
# 这里写了 2gb 作为示例,请根据你机器实际情况修改,如 4gb, 8gb
- "--maxmemory 2gb"
# 内存满了之后的策略:移除最近最少使用的 Key (LRU)
- "--maxmemory-policy allkeys-lru"
# 4. 连接与超时
- "--timeout 300" # 客户端闲置 300秒(5分钟) 后断开连接
- "--tcp-keepalive 300" # TCP 保活探测
- "--databases 16" # 默认数据库数量
- "--maxclients 10000" # 最大连接客户端数
# 5. 性能优化
# 开启多线程 IO (Redis 6.0+ 特性),加速网络读写
# 建议设置为 CPU 核心数 - 1,例如 4核机器设为 2 或 3。设为 1 表示禁用。
# - "--io-threads 1"
# - "--io-threads-do-reads yes"
# 健康检查 (必须带上密码)
healthcheck:
test: ["CMD", "redis-cli", "-a", "redis@!QAZxsw2", "ping"]
interval: 10s
timeout: 5s
retries: 5
# networks:
# - default
EOF
启动与验证
启动 Redis
# 进入 docker-compose.yaml 目录启动
root@edis:/data/workspace/install-redis# docker compose up -d
验证 Redis
# 查看日志 检查是否有报错(特别是 Warning 警告)
docker logs -f redis-standalone
# 验证连接与配置,进入容器内部测试,不需要密码,在dockercompose中设置有环境变量
docker exec -it redis-standalone redis-cli
# 在 127.0.0.1:6379> 提示符下输入:
# 测试存取
set hello world
get hello
# 查看当前内存配置是否生效
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "2147483648"
评论区
可以登录账户在下面对本篇文章提出见解。