我对缓存有一些疑问。
我使用Laravel作为框架,但我不知道应该为缓存设置多少次。
我的意思是,我曾经这样创建缓存:
$model = Cache::remember("model.1", 60*24, function () {
return Model::find(1)->first();
});
所以在这里,我将ID为1的关键模型的模型留在缓存中1天。
问题是,我应该在缓存中设置多少次。通常,使用这种缓存方法,我会添加一个ModelObserver,如果该缓存已被删除,它将根据模型ID忘记缓存。 并且,当更新模型或保存模型时,会将请求的模型ID放入缓存中。
我可以为模型设置无限次缓存吗?因为,观察者将在需要时再次添加到缓存中,或者在需要时忘记(感谢观察者)
我试图在互联网上找到一篇有关缓存时间以及应设置多少等的文章。但是找不到。
例如,我可以拥有一个列出我的应用程序所有用户的缓存,如果添加了一个用户(感谢观察者),我会在缓存中提出列出所有用户的请求(或者忘记它,以及何时第一个用户进入列出用户的页面,它将重新缓存它。)
有关缓存的最佳做法是什么?
最诚挚的问候
答案 0 :(得分:1)
我可能建议不要缓存用户记录-仅仅是因为您可能会遇到潜在的安全问题。
您所做的一切看起来都很好,正如您所说,您可以将其推到最长时间-如果Observer负责清除或重新缓存,那么您已经具有在其中进行管理的机制。地方。
我可能会改变的一件事是设置生存期的方式-例如,可以像这样使用Illuminate\Support\Carbon
:
$model = Cache::remember("model.1", Carbon::now()->addYear(), function () {
return Model::find(1)->first();
});
要考虑的另一件事是缓存驱动程序和可用的存储量-redis
将所有内容存储在内存中,file
存储在磁盘上,等等。
除此之外,一切看起来都很不错。