在thinkphp8中配置redis缓存,需要修改应用目录下的 config/cache.php 配置文件,将默认驱动改为 redis 并填写连接参数。具体做法是找到 stores 数组中的 default 项,将其 type 设置为 redis,并在 host、port、password 等字段中填入实际的redis服务器信息。如果未设置密码,可留空或省略该键;若使用非标准端口或数据库索引,也需相应调整 port 和 select 参数。

cache.php中哪些字段决定Redis连接行为
这些字段直接控制客户端如何建立与Redis服务的通信链路。type 指定驱动类型,必须为 redis 才能启用Redis扩展;host 定义服务器地址,支持IP或域名;port 指定TCP端口,默认为6379;password 用于AUTH认证,无密码时可不填;select 选择逻辑数据库编号,范围0-15,默认0;timeout 设置连接超时秒数,建议大于0避免阻塞;prefix 添加键前缀防止命名冲突,常用于多环境隔离。

return [
'stores' => [
'default' => [
'type' => 'redis',
'host' => '127.0.0.1',
'port' => 6379,
'password' => '',
'select' => 0,
'timeout' => 5,
'prefix' => 'tp8_',
],
],
];
以上配置写入 config/cache.php 后,调用 Cache::set('key', 'value') 即可存入Redis。预期结果:数据以 tp8_key 形式存在于本地Redis的DB0中,TTL为默认永久(除非显式设置过期时间)。验证方式可通过 redis-cli get tp8_key 查看返回值是否为 value。
cache.php中prefix字段对键名生成有何影响
prefix 字段会在所有缓存键前自动追加指定字符串,形成最终存储键名。例如设置 prefix => 'app1_' 后,调用 Cache::get('user:1') 实际读取的是 app1_user:1。这一机制用于避免不同应用或模块间键名冲突,尤其在共享Redis实例时至关重要。若未设置 prefix,则直接使用原始键名,可能引发覆盖风险。

// 假设 prefix = 'test_'
当执行 Cache::set('name', 'Alice') 时,实际写入Redis的键为 test_name。读取时同样需通过 Cache::get('name'),框架会自动拼接前缀。若手动在Redis中查询 name 将返回nil,因为不存在该裸键。此行为确保即使多个项目共用同一Redis实例,只要前缀不同,数据就不会互相干扰。注意:修改 prefix 后,旧数据不会自动迁移,需手动清理或重新生成。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











