很多技术新人在使用缓存上未遵循分门别类的思路,缓存key值做的比较随意,当系统遇到内存拥堵的情况下整个网站都缓慢了,如果用一键清除又会导致数据库查询量暴增,看完本篇希望能够给你一个新思路。
例如在Thinkphp中,用cache助手方法非常方便,在我们系统开发支出可能只想到了功能实现和局部的缓存应用,但是当网站规模上升后再来做缓存管理已经是比较晚了。我在板砖博客的设计中期考虑到了这个问题,于是稍微改造了一下cache助手方法:
/**
* 为了预防cache出错,做的判断
* @param unknown tag前缀
* @param unknown 名称
* @param string $value 当不写value的时候是获取,写的时候是赋值
* @return mixed|\think\cache\Driver|boolean|NULL
*/
function dcache($tag, $name, $value = '', $outtime = 3600)
{
if (config('cache_status') == 0) {
return null;
}
try {
if ($value == '') {
return cache($name);
}
if ($tag) {
return Cache::tag($tag)->set($name, $value, $outtime);
}
return cache($name, $value, $outtime);
} catch (Exception $e) {
return null;
}
}
通过tag将各模块缓存分类,tag值你可以在系统中define会比较方便使用,删除时可以达到板砖博客的缓存管理可视化效果,如下图: