- 4
- 0
- 约6.75千字
- 约 8页
- 2017-06-19 发布于湖北
- 举报
服务 ―― 缓存
服务 —— 缓存
1、配置
Laravel为不同的缓存系统提供了统⼀的API 。缓存配置位于config/cache.php。在
该⽂件中你可以指定在应⽤中默认 ⽤哪个缓存驱动。Laravel ⽬前⽀持流⾏的缓存后
端如Memcached和Redis等。
缓存配置⽂件还包含其他⽂档化的选项,确保仔细阅读这些选项。默认情况下,
Laravel被配置成 ⽤⽂件缓存,这会将序列化数据和缓存对象存储到⽂件系统。对⼤
型应⽤,建议 ⽤内存缓存如Memcached或APC ,你甚⾄可以为同⼀驱动配置多个缓
存配置。
1.1 缓存预备知识
1.1.1 数据库
⽤database缓存驱动时,你需要设置⼀张表包含缓存缓存项。下⾯是该表的
Schema声明:
Schema::create(cache, function($table) {
$table-string( ey )-unique();
$table-text(value);
$table-integer(expiration);
});
1.1.2 Memcached
⽤Memcached缓存要求安装了Memcached PECL 包,即PHP Memcached扩展。
Memcached::addServer默认配置 ⽤TCP/IP协议:
memcached = [
[
host = ,
port = 11211,
weight = 100
],
],
你还可以设置host 选项为UNIX socket路径,如果你这样做,port选项应该置为 :
memcached = [
[
host = /var/run/memcached/memcached.soc ,
port = 0,
weight = 100
],
],
1.1.3 Redis
⽤Laravel的Redis缓存之前,你需要通过Composer安装predis/predis包
(~ 1. )。
了解更多关于Redis的配置,查看Larave的Redis⽂档。
2、缓存使⽤
2.1 获取缓存实例
Illuminate\Contracts\Cache\Factory和
Illuminate\Contracts\Cache\Repository契约提供了访问Laravel的缓存服务
的⽅法。Factory契约提供了所有访问应⽤定义的缓存驱动的⽅法。Repository契
约通常是应⽤中cache配置⽂件中指定的默认缓存驱动的⼀个实现。
然⽽,你还可以 ⽤Cache门⾯,这也是我们在整个⽂档中 ⽤的⽅式,Cache门⾯
提供了简单⽅便的⽅式对底层Laravel缓存契约实现进⾏访问。
例如,让我们在控制器中导⼊Cache门⾯:
?php
namespace App\Http\Controllers;
use Cache;
use Illuminate\Routing\Controller;
class UserController extends Controller{
/**
* 显示应⽤所有⽤户列表
*
* @return Response
*/
public function index()
{
$value = Cache::get( ey );
//
}
}
2.1.1 访问多个缓存存储
⽤Cache门⾯,你可以 ⽤store⽅法访问不同的缓存存储器,传⼊store⽅法的
键就是cache配置⽂件中stores配置数组⾥列出的相应的存储器:
$value = Cache::store(file)-get(foo);
Cache::store(redis)-put(bar, baz, 10);
2.2 从缓存中获取数据
Cache门⾯的get⽅法⽤于从缓存中获取缓存项,如果缓存项不存在,返回null 。如果
需要的话你可以传递第⼆个参数到get⽅法指定缓存项不存在时返回的⾃定义默认
值:
$value = Cache::get( ey );
$value = Cache::get( ey , default);
你甚⾄可以传递⼀个闭包作为默认值,如果缓存项不存在的话闭包的结果将会被返
回。传递闭包允许
原创力文档

文档评论(0)