Laravel缓存的高级优化的简单例子

laravel提供五个缓存的驱动模式:

•文件系统
•数据库
•Memcached
•APC
•Redis
•内存 (Arrays)

默认情况下, Laravel被配置为使用文件系统缓存驱动, 这是不需要配置的. 文件系统驱动把缓存项作为文件存储在storage/cache目录.如果你满意这个驱动, 没有其他的配置是必需的. 直接使用它就好:

提示: 使用文件系统缓存驱动程序之前, 要确保你的storage/cache目录是可写的.

在Laravel中使用缓存,可以使用Cache这个Facade,很方便而且可以很优雅的使用缓存,常见的使用缓存的方式是这样的:

$value = cache->get('key');
if($value === false){
    $value = DB->where('xx')->get();
    $value = cache->set('key', $value);
    cache->expire('key', 1800);
}

这个逻辑在Laravel中使用remember方法和闭包函数,可以非常优雅方便的表达,三行代码实现上面的过程。

如下:

use App\Http\Requests;
use App\Models\Wp;
use Illuminate\Support\Facades\Cache;
 
class BlogController extends Controller
{
    private $indexPostsKey = 'com.tanteng.me.index.blog.posts';
 
    public function index()
    {
        $newPosts = Cache::store('redis')->remember($this->indexPostsKey, 30, function () {
            return Wp::type('post')->status('publish')->orderBy('post_date', 'desc')->take(16)->get();
        });
        return View('index/blog', compact('newPosts'));
    }
}

这只是Laravel中一个使用缓存方式的简单例子,这也是本站Blog页面列表的获取方式,首先找缓存,没有在闭包中查询数据库返回,并缓存30分钟,Cache::store(‘file’)可以方便使用不同的缓存方式。

时间: 2024-09-29 04:02:07

Laravel缓存的高级优化的简单例子的相关文章

OSCache简单例子

OSCache简单例子         1.  BaseCache.java  基类     package com.yanek.demo.cache.oscache; import java.util.Date; import com.opensymphony.oscache.base.NeedsRefreshException;import com.opensymphony.oscache.general.GeneralCacheAdministrator; public class Bas

php99乘法表:php简单例子--打印出99乘法表

php简单例子--打印出99乘法表:<?php//php打印出九九乘法表for ($i=1; $i<10; $i++){for ($j=1; $j<=$i; $j++){echo $j*$i;echo ' ';}echo '<br />';}?> 本文链接http://www.cxybl.com/html/wlbc/Php/20130326/37405.html

web.config文件自定义配置节的使用方法的一个简单例子

web web.config文件自定义配置节的使用方法的一个简单例子用来演示的程序名为MyApp,Namespace也是MyApp 1.编辑web.config文件 添加以下内容,声明一个Section <configSections>    <section name="AppConfig" type="MyApp.AppConfig, MyApp" /> </configSections>   声明了一个叫AppConfig的

SYBAES ASE 12.0 上一个横表转纵表的简单例子

SYBAES ASE 12.0 上一个横表转纵表的简单例子   千千如梦 2002年10月   /* create table ... */create table #dest_table(                         Flag char(1),                         A int null,                         B int null,                         C int null,         

数据库访问简单实现---edainfo-model(三)——简单例子

model|访问|数据|数据库 下面就正式来讲一下开发步骤:首先,在Tomcat5.X下建一个jdbc/edainfo的数据源,数据库可以是oracle.sql server.mysql.表的结构如下:CREATE TABLE example (id varchar(13) NOT NULL ,name varchar(50) NULL ,address varchar(50) NULL ) ON [PRIMARY]其中,id为主键.datasource.xml内容如下:<?xml versio

一个颜色轮换的简单例子

一个颜色轮换的简单例子,使用三元运算子,使程序简练. 我们曾经在网站上看过一些表格单元格的背景颜色是隔行变化的,其实用下面一段很小的一段代码就可以实现: $color=(($coloralter++ %2)? "e0e0e0":"e8e8e8") ,即通过将变量累加和2取余,运用三元运算子来取得两个不同得颜色值. 示例如下: <html> <head> <title>test</title> <meta http

Spring 2.5标注开发的简单例子

研究了很久新出的 Spring 2.5, 总算大致明白了如何用标注定义 Bean, 但是如何定义和注入类型为 java.lang.String 的 bean 仍然未解决, 希望得到高人帮助. 总的来看 Java EE 5 的标注开发方式开来是得到了大家的认可了. @Service 相当于定义 bean, 自动根据 bean 的类名生成一个首字母小写的 bean @Autowired 则是自动注入依赖的类, 它会在类路径中找成员对应的类/接口的实现类, 如果找到多个, 需要用 @Qualifier

一个O/RMapping的简单例子

ORMAPPING出来已经很多年了,之前一直有关注,但一直没有应用到项目中去,众所周知,ORMAPPING 的性能是很大一个问题,虽然它节省代码量,为程序员做了很多工作.而且ORMAPPING主要应用在JAVA领 域,.NET领域用到的少之又少,最近公司要做一个内部的资产管理系统,我就打算用ORMAPPING来做,对 几种ORMAPPING的框架我进行了比较,第一,nhibernate这个我相信大家比较熟悉了,nhibernate在JAVA 领域已经应用相当广泛了,nhibernate最持久层性

javascript判断非数字的简单例子

这篇文章介绍了javascript判断非数字的简单例子,有需要的朋友可以参考一下   复制代码 代码如下: <html> <head> <title>判断是否为数字及空格</title> <script type="text/javascript" src="jquery.min.js"></script> //这里有无也无所谓 <script type="text/javasc