在 Docker 中配置 Redis 以支持 Hyperf 的关键是网络互通、认证一致、配置匹配:使用 redis:alpine 镜像启动带密码的 Redis 容器,创建并加入自定义网络 hyperf-network,.env 中配置 REDIS_HOST=redis、REDIS_AUTH=123456、REDIS_PORT=6379,并确认 PHP Redis 扩展已启用。

在 Docker 中配置 Redis 以支持 Hyperf,核心是让 Hyperf 容器能稳定、低延迟地访问 Redis 服务。关键不在于单独启动 Redis,而在于网络互通、认证一致、配置匹配这三点。
拉取并运行 Redis 容器(带密码)
推荐使用官方 redis:alpine 镜像,轻量且可靠:
- 执行命令启动带密码的 Redis 实例:
docker run -d --name redis --restart=always -p 6380:6379 -e REDIS_PASSWORD=123456 redis:alpine --requirepass "123456" - 注意:端口映射
6380:6379是为避免与本地 Redis 冲突;若仅容器内通信,可省略-p,后续靠 Docker 网络连接
创建共享网络并接入容器
Hyperf 和 Redis 必须处于同一自定义 Docker 网络,才能用服务名互访(比 IP 更稳定):
- 新建网络:
docker network create hyperf-network - 将已运行的容器加入该网络:
docker network connect hyperf-network redisdocker network connect hyperf-network hyperf - 验证方式:进入 hyperf 容器执行
ping redis或redis-cli -h redis -a 123456 ping,返回PONG即通
配置 Hyperf 的 .env 文件
确保 .env 中 Redis 配置与容器实际参数一致,尤其注意 host 使用服务名而非 localhost:
-
REDIS_HOST=redis(不是127.0.0.1或宿主机 IP) -
REDIS_AUTH=123456(与--requirepass值一致) -
REDIS_PORT=6379(容器内端口,非宿主机映射端口) -
REDIS_DATABASE=0(默认库,按需调整)
确认 PHP Redis 扩展已启用
Hyperf 官方镜像(如 hyperf/hyperf:8.2-alpine-v3.16-swoole)通常已内置 Redis 扩展,但需验证:
- 进入 hyperf 容器:
docker exec -it hyperf bash - 执行:
php -m | grep redis,有输出即表示扩展就绪 - 若缺失,需手动安装:
pecl install redis && docker-php-ext-enable redis
完成以上四步后,Hyperf 就能通过 Redis 客户端正常读写缓存或队列。不需要改代码,只要 config/autoload/cache.php 和 queue.php 中驱动设为 redis,即可开箱即用。


















