您好,登錄后才能下訂單哦!
今天小編給大家分享一下PHP laravel緩存cache機制怎么實現的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
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):正常取值
$value = Cache::get('key');
(2):如果不存在,附默認值
$value = Cache::get('key', 'default');
(3):使用閉包操作,附默認值
$value = Cache::get('key', function() {
return DB::table(...)->get();
});
has 方法用于判斷緩存項是否存在,如果值為 null 或 false 該方法會返回 false:
if (Cache::has('key')) {
//
}
increment 和 decrement 方法可用于調整緩存中的整型數值。這兩個方法都可以接收第二個參數來指明緩存項數值增加和減少的數目:
Cache::increment('key');
Cache::increment('key', $amount);
Cache::decrement('key');
Cache::decrement('key', $amount);
有時候你可能想要獲取緩存項,但如果請求的緩存項不存在時給它存儲一個默認值。例如,你可能想要從緩存中獲取所有用戶,或者如果它們不存在的話,從數據庫獲取它們并將其添加到緩存中,你可以通過使用 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();
});
如果你需要從緩存中獲取緩存項然后刪除,你可以使用 pull 方法,和 get 方法一樣,如果緩存項不存在的話返回 null:
$value = Cache::pull('key');
你可以使用 Cache 門面上的 put 方法在緩存中存儲數據。當你在緩存中存儲數據的時候,需要指定數據被緩存的時間(秒數):
Cache::put('key', 'value', $seconds);
如果沒有傳遞緩存時間到 put 方法,則緩存項永久有效:
Cache::put('key', 'value');
除了傳遞緩存項失效時間,你還可以傳遞一個代表緩存項有效時間的 PHP Datetime 實例:
$expiresAt = Carbon::now()->addMinutes(10);
Cache::put('key', 'value', $expiresAt);
add 方法只會在緩存項不存在的情況下添加數據到緩存,如果數據被成功添加到緩存返回 true,否則,返回 false:
Cache::add('key', 'value', $seconds);
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();
以上就是“PHP laravel緩存cache機制怎么實現”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。