top-think / think

ThinkPHP Framework ——十年匠心的高性能PHP框架
http://www.thinkphp.cn
Other
7.83k stars 1.62k forks source link

请求缓存BUG #1081

Open wxkxklmyt opened 3 years ago

wxkxklmyt commented 3 years ago

支持给一组路由设置缓存标签

// 定义GET请求路由规则 并设置3600秒的缓存
Route::get('new/:id','News/read')->cache(
    [ 'new/:id/:page', 3600, 'page']
);

实际业务上缓存标签会很多 存在一个问题就是,假设标签page里边有两个缓存key,两个缓存key过期时间为3600秒,到时间后这两个KEY就过期了。而缓存标签page还会一直存在,因为标签page设置的有效期为-1,是永久有效。当运行时间长了,比如一个月后,redis里会全部是过期了缓存标签。 建议缓存标签也允许设置有效期,直接从请求缓存规则里边取,这里就取3600,有效期为最后一次更新缓存标签为准