2016-08-03 87 views
0

前几天我刚搬到Laravel,所以我在这个框架中仍然是新的......我有静态html页面存储在数据库(大量的页面),并且访问者可以通过输入相关的URL来请求这些页面。我想通过缓存来提高性能,在Laravel中做到这一点的最佳方式是什么?以及如何从数据库中删除缓存页面?缓存来自数据库的静态页面

回答

1

Laravel提供了各种缓存系统统一的API。

强烈建议看看文档。

Laravel Cache Documentation

您可以缓存的页面永远,一旦你删除你调用缓存forget()方法

检索或更新

$value = Cache::rememberForever('users', function() { 
    return DB::table('users')->get(); 
}); 

$value = Cache::remember('users', $minutes, function() { 
    return DB::table('users')->get(); 
}); 

商店

从缓存中

Cache::forget('key'); 
+0

谢谢你的详细解答,当我编辑数据库中的网页,我可以更新缓存呢?我也看到很多缓存方法(redis,memcache等......)哪一个适合我的情况? – medBo

+0

他们是'''司机'''。您可以在本地缓存或内存中的键/值存储(memcached)。这取决于你。阅读关于它们的信息,看看对你最好的是什么。 – xdevnull

+0

谢谢!如何在编辑页面时更新缓存? – medBo

1
namespace App; 

use Illuminate\Database\Eloquent\Model; 
use Cache; 
use Carbon\Carbon; 


class Page extends Model 
{ 
    public function getPage($url) 
    { 
     if (Cache::has($url)) 
     { 
      $page = Cache::get($url); 
     } 
     else { 
      $page = self::where(['confirm'=> 1, 'url'=> $url])->first(); 
      $expiresAt = Carbon::now()->addHours(12); 
      Cache::put($url, $page, $expiresAt); 
     } 

     return $page; 

    } 
} 
删除

Очискакеша:

Cache::flush(); 
+0

@IIyaYaremchuk如何在数据库中编辑页面时更新特定缓存? – medBo

+0

@medBo Cache :: put($ url,$ page,$ expiresAt); –

+0

@IIyaYaremchuk这将更新缓存,如果它已经存在? – medBo