PHP?laravel緩存cache機制詳解

本篇文章給大家?guī)砹岁P于laravel的相關知識,其中主要介紹了關于laravel中的cache為我們提供了三種緩存機制:redismemcache,以及框架的文件緩存的相關內(nèi)容,下面一起來看一下,希望對大家有幫助。

PHP?laravel緩存cache機制詳解

【相關推薦:laravel

laravel中的cache為我們提供了三種緩存機制。

Redis,memcache,以及框架的文件緩存。

這里主要看的是cache中的文件緩存。

立即學習PHP免費學習筆記(深入)”;

一、訪問多個緩存存儲

使用?Cache?門面,你可以使用?store 方法訪問不同的緩存存儲器,傳入?store?方法的鍵就是 cache 配置文件中?stores?配置數(shù)組里列出的相應的存儲器:

$value?=?Cache::store('file')->get('foo'); Cache::store('redis')->put('bar',?'baz',?600);??//?10分鐘

二、從緩存中獲取數(shù)據(jù)

1.獲取數(shù)據(jù)并設置默認值

(1):正常取值

$value?=?Cache::get('key');

(2):如果不存在,附默認值

$value?=?Cache::get('key',?'default');

(3):使用閉包操作,附默認值

$value?=?Cache::get('key',?function()?{ ????return?DB::table(...)->get(); });

2.檢查緩存項是否存在

has?方法用于判斷緩存項是否存在,如果值為?NULL?或?false?該方法會返回?false:

if?(Cache::has('key'))?{ ????// }

3.數(shù)值增加/減少

increment?和?decrement?方法可用于調(diào)整緩存中的整型數(shù)值。這兩個方法都可以接收第二個參數(shù)來指明緩存項數(shù)值增加和減少的數(shù)目:

Cache::increment('key'); Cache::increment('key',?$amount); Cache::decrement('key'); Cache::decrement('key',?$amount);

4.獲取 & 存儲

有時候你可能想要獲取緩存項,但如果請求的緩存項不存在時給它存儲一個默認值。例如,你可能想要從緩存中獲取所有用戶,或者如果它們不存在的話,從數(shù)據(jù)庫獲取它們并將其添加到緩存中,你可以通過使用?Cache::remember?方法實現(xiàn):

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

如果緩存項不存在,傳遞給?remember?方法的閉包被執(zhí)行并且將結(jié)果存放到緩存中。

你還可以使用?rememberForever?方法從緩存中獲取數(shù)據(jù)或者將其永久存儲起來:

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

5.獲取 & 刪除

如果你需要從緩存中獲取緩存項然后刪除,你可以使用?pull?方法,和?get?方法一樣,如果緩存項不存在的話返回?null:

$value?=?Cache::pull('key');

三、緩存中存儲數(shù)據(jù)

1.獲取存儲數(shù)據(jù)

你可以使用?Cache?門面上的?put?方法在緩存中存儲數(shù)據(jù)。當你在緩存中存儲數(shù)據(jù)的時候,需要指定數(shù)據(jù)被緩存的時間(秒數(shù)):

Cache::put('key',?'value',?$seconds);

如果沒有傳遞緩存時間到?put?方法,則緩存項永久有效:

Cache::put('key',?'value');

除了傳遞緩存項失效時間,你還可以傳遞一個代表緩存項有效時間的 php?Datetime?實例:

$expiresAt?=?Carbon::now()->addMinutes(10); Cache::put('key',?'value',?$expiresAt);

2.緩存不存在時存儲數(shù)據(jù)

add?方法只會在緩存項不存在的情況下添加數(shù)據(jù)到緩存,如果數(shù)據(jù)被成功添加到緩存返回?true,否則,返回?false:

Cache::add('key',?'value',?$seconds);

3.永久存儲數(shù)據(jù)

forever?方法用于持久化存儲數(shù)據(jù)到緩存,這些值必須通過?forget?方法手動從緩存中移除:

Cache::forever('key',?'value');

四、從緩存中移除數(shù)據(jù)

可以使用?Cache?門面上的?forget?方法從緩存中移除緩存項數(shù)據(jù):

Cache::forget('key');

還可以通過設置緩存有效期為?0?或負數(shù)來移除緩存項:

Cache::put('key',?'value',?0); ? Cache::put('key',?'value',?-5);

如果要清除所有緩存,可以通過?flush?方法:

Cache::flush();

以上基本上就是laravel框架對文件緩存的操作方法

【相關推薦:laravel

以上就是PHP?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊15 分享