ThinkPHP 缓存与 Session 上 Redis:配置、键设计与失效策略
把缓存和 Session 放到 Redis 能明显减轻数据库压力,但键名混乱、缓存雪崩、Session 过期时间不一致也会带来新问题。本文给出 ThinkPHP 6 下的配置写法与可落地的键命名规范。
共 13 篇文章 · 上级分类 技术分享
把缓存和 Session 放到 Redis 能明显减轻数据库压力,但键名混乱、缓存雪崩、Session 过期时间不一致也会带来新问题。本文给出 ThinkPHP 6 下的配置写法与可落地的键命名规范。
ThinkPHP 的关联查询写起来很顺手,但循环里访问关联同样会产生 N+1。本文用 hasOne、hasMany、belongsTo 的实际例子,讲清 with 预载入、withCount 统计与嵌套预载入的用法。
ThinkPHP 6 的路由支持闭包、控制器与资源写法,中间件则分全局、应用与路由三层。本文按项目实际结构讲清三层中间件的注册方式、执行顺序,以及参数绑定与验证的常见坑。
把验证规则堆在控制器里,很快就会难以维护。本文用 FormRequest 拆分验证逻辑,讲清自定义规则对象、字段名本地化,以及页面与 API 两种错误响应的统一处理方式。
发邮件、生成报表、调用第三方接口都不该卡在请求里。本文讲清 Laravel 队列的任务定义、重试与失败处理,以及调度任务的 withoutOverlapping、onOneServer 与部署时的 Supervisor 配置。
列表页一次 20 条数据却产生 41 条 SQL,多数是 N+1 查询造成的。本文用可复现的例子讲清 with、withCount、loadMissing 与字段裁剪的差别,并给出索引与分页的搭配写法。