首頁 > php框架 > Laravel > 主體

PHP laravel快取cache機制詳解

WBOY
發布: 2022-11-01 15:24:51
轉載
1531 人瀏覽過

這篇文章為大家帶來了關於laravel的相關知識,其中主要介紹了關於Laravel中的cache為我們提供了三種快取機制:Redis,memcache,以及框架的檔案緩存的相關內容,下面一起來看一下,希望對大家有幫助。

【相關推薦:laravel影片教學

Laravel中的cache為我們提供了三種快取機制。

Redis,memcache,以及框架的檔案快取。

這裡主要看的是cache中的檔案快取。

一、存取多個快取儲存

使用 Cache 門面,你可以使用 store 方法存取不同的快取記憶體,傳入 store 方法的鍵是cache 設定檔中 stores 設定陣列裡所列的對應的記憶體:

$value = Cache::store('file')->get('foo');
Cache::store('redis')->put('bar', 'baz', 600);  // 10分钟
登入後複製

二、從快取取得數據

1.取得資料並設定預設值

(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.數值增加/減少

increment 與 decrement 方法可用於調整快取中的整數數值。這兩個方法都可以接收第二個參數來指明快取項數值增加和減少的數目:

Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
登入後複製

4.取得& 儲存

有時候你可能想要取得快取項,但如果請求的快取項目不存在時給它儲存一個預設值。例如,你可能想要從快取中獲取所有用戶,或者如果它們不存在的話,從資料庫獲取它們並將其添加到快取中,你可以透過使用 Cache::remember 方法實現:

$value = Cache::remember('users', $seconds, function() {
    return DB::table('users')->get();
});
登入後複製

如果快取項目不存在,傳遞給 remember 方法的閉包被執行並且將結果存放到快取中。

你也可以使用 rememberForever 方法從快取中取得資料或將其永久儲存:

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

5.取得& 刪除

如果你需要從快取中取得快取項目接著刪除,你可以使用 pull 方法,和 get 方法一樣,如果快取項目不存在的話返回 null:

$value = Cache::pull('key');
登入後複製

三、快取中儲存資料

#1.取得儲存資料

你可以使用 Cache 門面上的 put 方法來儲存資料儲存快取。當你在快取中儲存資料的時候,需要指定資料被快取的時間(秒數):

Cache::put('key', 'value', $seconds);
登入後複製

如果沒有傳遞快取時間到 put 方法,則快取項目永久有效:

Cache::put('key', 'value');
登入後複製

除了傳遞快取項目失效時間,你還可以傳遞一個代表快取項目有效時間的PHP Datetime 實例:

$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);
登入後複製

2.快取不存在時儲存資料

add 方法只會在緩存項目不存在的情況下新增資料到快取,如果資料成功加入到快取回傳 true,否則,回傳 false:

Cache::add('key', 'value', $seconds);
登入後複製

3.永久儲存資料

forever 方法用於持久化儲存資料到緩存,這些值必須透過 forget 方法手動從快取中移除:

Cache::forever('key', 'value');
登入後複製

四、從快取中移除資料

可以使用 Cache 門面上的 forget 方法從快取中移除快取項目資料:

Cache::forget('key');
登入後複製

也可以透過設定快取有效期限為 0 或負數來移除快取項目:

Cache::put('key', 'value', 0);
 
Cache::put('key', 'value', -5);
登入後複製

如果要清除所有快取,可以透過 #flush 方法:

Cache::flush();
登入後複製

以上基本上就是laravel框架對檔案快取的操作方法

#【相關推薦:laravel影片教學

以上是PHP laravel快取cache機制詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板