php需安装redis扩展,thinkphp依赖其连接redis;配置cache.php启用redis驱动并设置连接池参数,避免高并发连接问题;通过redis-cli验证连接,注意密码、host及maxclients限制。

确认 PHP 环境已装 redis 扩展
ThinkPHP 本身不自带 Redis 驱动,它依赖 PHP 的 redis 扩展(不是 phpredis 的旧名,就是官方扩展名)。没这个扩展,配再多配置都连不上。
常见错误现象:Class 'Redis' not found 或 Driver [redis] not supported。别急着改 TP 配置,先查扩展是否真在运行中。
- 命令行执行
php -m | grep redis,有输出才说明扩展已加载 - 如果用的是 Docker,确认
Dockerfile里执行了docker-php-ext-install redis,而非只装了php-redis包(Debian/Ubuntu 系的包名容易混淆) - Windows 下注意
php_redis.dll是否放在ext/目录、且php.ini中启用了extension=redis
在 ThinkPHP 中启用 Redis 缓存驱动
TP6+ 默认支持 redis 缓存驱动,但需要显式配置;TP5.1 起也支持,但部分旧版本需手动注册驱动。关键是把缓存类型设对,不是“开启 Redis”而是“让缓存走 Redis”。
使用场景:缓存 Session、模板、查询结果、或自定义 Cache::store('redis')->get() 调用。
- 修改
config/cache.php,确保'default' => 'redis' -
'redis'驱动配置必须指向有效的redis连接池配置项(见下节),不能只写'type' => 'redis'就完事 - TP6.1+ 支持连接池,但默认未启用;若没配
'pool' => true和对应连接池参数,每次请求仍会新建连接,压测时容易触发Too many open files
配置 Redis 连接池(非可选,是性能关键)
没配连接池 ≠ 不能用 Redis,而是高并发下会频繁创建销毁连接,CPU 和 TIME_WAIT 暴涨。TP 的连接池不是“自动开”,得手动填参数。
参数差异:TP6 的 redis 驱动池配置字段是 'pool' => ['maxActive' => 20],不是 Laravel 风格的 connections 数组;maxActive 是最大空闲连接数,不是总连接上限。
- 在
config/cache.php的'stores.redis'下加完整配置:'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'database' => 0, 'timeout' => 0, 'pool' => [ 'maxActive' => 20, 'maxWait' => 3, 'maxIdle' => 10, 'minIdle' => 5, ], - 注意
timeout => 0表示永不超时,线上建议设为2.5(秒),避免单个慢查询拖垮整个请求 - 如果 Redis 在 Docker 容器里,
host别写localhost—— 容器内 localhost 指自己,要写宿主机 IP 或 Docker 网络别名(如redis-server)
验证连接与排查 ERR invalid password 类错误
配完不等于通了。最常卡在认证和网络层,而不是 TP 代码逻辑。
常见错误现象:ERR invalid password、Connection refused、read error on connection。这些基本和 TP 无关,是连接参数或 Redis 服务状态问题。
- 先用命令行直连验证:
redis-cli -h 127.0.0.1 -p 6379 -a "yourpass" ping,返回PONG再调 TP - 如果 Redis 开了
requirepass,但 TP 配置里password是空字符串或null,就会报invalid password;空密码也要显式写'',不能删掉该字段 - TP 日志里搜
redis connect failed,看具体抛出的异常类是RedisException还是think\exception\ClassNotFoundException—— 前者是连接失败,后者才是扩展没装
maxIdle 和 minIdle 不是越大越好,值设太高会导致 Redis 服务端连接数堆积,尤其当应用实例多、每个实例都配了 50 个最小空闲连接时,很容易触发 maxclients 限制。这地方得跟运维对齐 Redis 的 maxclients 值再反推配置。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











