ThinkPHP8.0使用Redis:手动填全config/cache.php参数;session与cache物理隔离(不同database);验证需执行ping返回+PONG;请求缓存需激活中间件,否则静默降级为file驱动。
提示:ThinkPHP 8.0 的 Redis 缓存真正提速的关键,并非“开启 Redis”那么简单,而是配置无遗漏、用法不越界、降级不沉默。许多项目的缓存看似生效,实则一直沿用 file 驱动——这是性能瓶颈最容易被忽视的根源。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
很多人认为在 .env 中设置 CACHE_STORE=redis 即可,但 ThinkPHP 8 并不识别 REDIS_HOST、REDIS_PORT 等环境变量。所有连接参数必须明确写入 config/cache.php 的 stores['redis'] 数组:
'127.0.0.1',不可留空或注释6379,使用字符串会导致程序失效0,必须指定,否则部分命令直接报错auth,传统模式使用 password3.0,避免连接卡死true,减少 TCP 握手开销不要指望通过 prefix 区分 session 和 cache,冲突风险较高。推荐物理隔离方案:
database => 0database => 1(需同步配置在 config/session.php 的 store 数组中)config/session.php 不仅要填写 'type' => 'redis',还必须完整声明 'store' => [...],否则会出现 Call to a member function setOptions() on null 错误ini_set('session.gc_probability', 0),防止 Redis 中的 session 被误删导致用户异常登出日志没有报错不代表连接成功。最快验证方法:
php think tinker(new thinkcachedriverRedis(config('cache.stores.redis')))->handler()->ping()+PONG 表示连接正常;返回 false 或异常说明配置有误或网络不通Cache::set('x', 'y') 返回 true,但 Cache::get('x') 返回 null,极有可能是应用程序静默降级为 file 驱动即使 Redis 配置完毕,GET 请求也不会自动缓存。必须主动启用框架内置的请求缓存中间件:
thinkmiddlewareCheckRequestCache 已注册到对应路由或全局中间件队列$this->cache(3600) 显式设置缓存时长id=5)会被完整计入 key,注意控制缓存粒度header() 或提前调用 session_start()),否则缓存响应逻辑将被破坏侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述