五分钟上手!Docker‑Compose 快速部署 Redis
为什么要用Docker部署Redis?
(1) 环境隔离
- 不同项目可用不同Redis版本互不干扰
- 清爽的容器环境,卸载也只需一条命令
(2) 快速启动
- 官方镜像一键拉取,秒级启动
- 无需手动编译、配置依赖
(3) 便于运维与扩展
- 容器编排Kubernetes/Docker‑Compose一键横向扩容
- 统一监控、日志收集更简单
(4) 版本可控
- 镜像标签精确对应 Redis 版本
- 回滚也只要切换镜像标签
优缺点
维度 | 优势 | 劣势 |
上手难度 | 简单: | 需先理解 Docker 基础 |
资源隔离 | 强:各容器独立文件系统与网络 | 容器层额外消耗少量资源 |
数据持久化 | 可用 | 若不小心,持久化目录误删会丢数据 |
可扩展性 | 配合编排工具轻松伸缩 | 单机环境多实例需手动端口映射管理 |
安全 | 可通过自定义网络与安全策略隔离访问 | 需额外配置密码/ACL,防火墙等才能保证安全 |
一条命令快速跑起Redis
docker run -d
--name redis-demo
-p6379:6379
-v ./redis-data:/data
redis:7.0
redis-server --appendonlyyes
- -d:后台启动
- --name:容器名
- -p:端口映射(宿主机 6379 → 容器 6379)
- -v:挂载本地 ./redis-data 目录,以实现 AOF 持久化
- redis:7.0:使用官方 7.0 镜像
- --appendonly yes:开启 AOF 持久化
验证:
dockerps# 查看运行中的容器
redis-cli -h127.0.0.1 -p6379ping# 应返回 PONG
Docker‑Compose 方式部署
对于有多服务、配置更复杂的场景,docker-compose显得更优雅。只需一份docker-compose.yml,即可一键启动。
version:'3.8'
services:
redis:
image: redis:7.0
container_name: redis-demo
restart: unless-stopped
ports:
-"6379:6379"
volumes:
- ./redis-data:/data
- ./redis.conf:/usr/local/etc/redis/redis.conf
command:["redis-server","/usr/local/etc/redis/redis.conf"]
- 自定义配置:通过挂载 redis.conf 调整内存、持久化方式、密码等
- 重启策略**:unless-stopped 保证意外重启后自动恢复
- 数据卷:持久化目录与配置文件分离
启动:
docker-compose up -d
常用配置示例 (redis.conf)
# 关闭保护模式(仅在受信网络中使用)
protected-mode no
# 监听所有网卡
bind 0.0.0.0
# 设置访问密码
requirepass YourStrongP@ssw0rd
# 开启 AOF 持久化
appendonly yes
appendfilename "appendonly.aof"
# 内存极限(单位 bytes)
maxmemory 256mb
maxmemory-policy allkeys-lru
常见问题 & 小贴士
(1) 如何修改端口?
只需在 ports 或 -p 中调整映射,例如 - "6380:6379"。
(2) 数据目录无权限?
检查宿主机目录拥有者,最好 chown 1000:1000 redis-data,或在 Compose 中加 user: "1000:1000"。
(3) 如何备份数据?
定期将宿主机 redis-data 目录打包或同步到远程存储。
(4) 安全性考量
- 强烈建议设置 requirepass
- 结合 Docker 网络,限制外网访问
- 在生产环境中,使用 Redis Sentinel 或 Cluster 提高可用性
小结
- docker run:零依赖、快速体验
- docker-compose:结构清晰、易于维护
友好提示:本地测试、开发环境极佳;生产环境请结合编排、监控与备份方案
本文地址:https://www.yitenyun.com/225.html
下一篇:如何将实时流量解析并存入数据库