frankenphp本身不提供redis连接能力,但完全支持原生redis扩展或predis库;需在环境中安装启用ext-redis(如sudo apt install php8.2-redis)或通过composer引入predis,连接方式与传统php一致,docker部署时须确保容器网络互通并用服务名而非127.0.0.1访问。

FrankenPHP 本身不直接提供 Redis 连接能力,但它完全支持 PHP 原生的 Redis 扩展(如 ext-redis 或 ext-phpredis),只要在运行环境中正确安装并启用该扩展,就能像在传统 PHP-FPM 环境中一样使用 Redis。
确认 Redis 扩展已启用
FrankenPHP 使用标准 PHP 运行时,因此依赖系统或容器中已安装的 PHP 扩展。验证方式如下:
- 运行
frankenphp -m | grep redis,查看输出是否含redis - 或创建一个
info.php文件,调用phpinfo(),搜索 “redis” 模块是否加载成功 - 若未启用,需安装对应扩展:Ubuntu 下执行
sudo apt install php8.2-redis(版本号需与 FrankenPHP 内置 PHP 版本一致)
在 PHP 代码中连接 Redis
配置方式与常规 PHP 完全一致,无需额外适配 FrankenPHP。推荐使用 Predis(纯 PHP 实现,无需编译扩展)或原生 Redis 类:
-
使用原生扩展:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 如需密码 $redis->auth('your_password'); $redis->set('key', 'value'); -
使用 Predis(通过 Composer):
在项目根目录执行composer require predis/predis,然后:$client = new Predis\Client([ 'scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379, 'password' => 'your_password', ]);
Docker 环境下的 Redis 配置要点
若用 Docker 部署 FrankenPHP + Redis,注意网络连通性:
- 确保 FrankenPHP 容器与 Redis 容器在同一个自定义网络(非默认 bridge)
- 在
docker-compose.yml中通过服务名访问,例如redis:6379而非127.0.0.1:6379 - 若 Redis 启用了密码认证,务必在 PHP 代码或环境变量中传入,避免硬编码
生产环境连接建议
为提升稳定性与可维护性,推荐将连接参数抽离为环境变量:
- 在
.env或 Caddyfile 的环境注入中设置:REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD=secret
- PHP 中读取:
$host = $_ENV['REDIS_HOST'] ?? '127.0.0.1'; $port = (int)($_ENV['REDIS_PORT'] ?? 6379); $pass = $_ENV['REDIS_PASSWORD'] ?? null;
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











