top-think/think

请求缓存BUG

wxkxklmyt opened this issue · 0 comments

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

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

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