如何检查Laravel 5中的Cache元素是否已过期?

时间:2015-09-17 07:52:58

标签: php laravel memcached laravel-5.1

我想在Cache中存储一个数组。我正在使用“MemCached”作为缓存驱动程序,它在查询中就像一个魅力,但我想将它用于我的搜索建议。我一直在看Laravel文档(http://laravel.com/docs/5.1/cache),但我找不到我想要的内容。

例如,我有这个函数,如果我在Cache上找到元素,我就会得到它。如果没有,我从DB获得结果,然后将它们存储在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;          
}

}

有些问题:

  1. 如果Cache中的元素到期,那么Cache :: get函数将返回什么?
  2. 有一个函数来检查数据库中是否存在该元素,但是有人检查Cache项是否已过期吗?
  3. 我的方法可以管理缓存吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Cache::has来检查是否存在。

但在你的情况下,我建议使用Cache::remember

public function get_suggestions() {
    return Cache::remember('search_suggestions', 10, function() {
        return Suggestions::get();
    });
}