如何检查缓存元素是否已在 Laravel 5 中过期?
How do I check if a Cache element has expired in Laravel 5?
我想在缓存中存储一个数组。我使用 "MemCached" 作为缓存驱动程序,它在查询中的作用就像一个魅力,但我想将它用于我的搜索建议。我一直在查看 Laravel 文档 (http://laravel.com/docs/5.1/cache),但一直找不到我要找的东西。
例如,我有这个函数,如果我在缓存中找到元素,我就会得到它。如果没有,我从数据库中获取结果,然后将它们存储在缓存中 10 分钟:
public function get_suggestions() {
if(Cache::get('search_suggestions')) {
return $search_suggestions;
} else {
$search_suggestions = Suggestions::get();
Cache::put('search_suggestions', '$search_suggestions', 10);
return $search_suggestions;
}
}
一些问题:
- 如果Cache中的元素过期,Cache::get函数会怎样returns?
- 有一个函数可以检查元素是否存在于数据库中,但是有没有人检查缓存项是否已过期?
- 我的方法可以管理缓存吗?
您可以使用 Cache::has
检查是否存在。
但在你的情况下我建议使用 Cache::remember
public function get_suggestions() {
return Cache::remember('search_suggestions', 10, function() {
return Suggestions::get();
});
}
我想在缓存中存储一个数组。我使用 "MemCached" 作为缓存驱动程序,它在查询中的作用就像一个魅力,但我想将它用于我的搜索建议。我一直在查看 Laravel 文档 (http://laravel.com/docs/5.1/cache),但一直找不到我要找的东西。
例如,我有这个函数,如果我在缓存中找到元素,我就会得到它。如果没有,我从数据库中获取结果,然后将它们存储在缓存中 10 分钟:
public function get_suggestions() {
if(Cache::get('search_suggestions')) {
return $search_suggestions;
} else {
$search_suggestions = Suggestions::get();
Cache::put('search_suggestions', '$search_suggestions', 10);
return $search_suggestions;
}
}
一些问题:
- 如果Cache中的元素过期,Cache::get函数会怎样returns?
- 有一个函数可以检查元素是否存在于数据库中,但是有没有人检查缓存项是否已过期?
- 我的方法可以管理缓存吗?
您可以使用 Cache::has
检查是否存在。
但在你的情况下我建议使用 Cache::remember
public function get_suggestions() {
return Cache::remember('search_suggestions', 10, function() {
return Suggestions::get();
});
}