一、Cache概述
Laravel為開發者提供了強大的緩存支持,同時支持多種緩存器,如文件緩存器、memcached緩存器、redis緩存器等等。通過使用Laravel的緩存功能可以顯著提升應用程序的速度。
Cache是將應用程序經常使用的數據存儲起來,以便快速訪問。通常,緩存數據會存儲到一個目錄下的文件系統、鍵值數據庫、內存或者其他數據存儲系統中。
二、配置Cache
在Laravel中,可以在config/cache.php配置文件中配置緩存。默認情況下,Laravel使用file緩存器,可以在config/cache.php中修改默認驅動設置。
以下是一個使用redis緩存器的示例配置:
'default' => env('CACHE_DRIVER', 'redis'),
'prefix' => env('CACHE_PREFIX', 'laravel'),
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 0),
],
],
三、Cache用法
3.1 存儲項目到Cache
使用緩存前,需要先引入 `Illuminate\Support\Facades\Cache`
將項目存儲到緩存中:
Cache::put('key', 'value', $minutes);
如需永久存儲,可以將緩存時間設為null
Cache::forever('key', $value);
3.2 檢索項目
從緩存中獲取項目:
$value = Cache::get('key');
如需獲取緩存項目,如未發現,返回一段指定值:
$value = Cache::get('key', 'default');
3.3 判斷項目是否存在
如果緩存中存在key,返回true,否則false:
if (Cache::has('key')) {
//
}
3.4 刪除項目
從緩存中刪除項目:
Cache::forget('key');
3.5 增加/減少項目的值
將緩存中的項目增加指定值:
Cache::increment('key');
Cache::increment('key', $value);
將緩存中的項目減少指定值:
Cache::decrement('key');
Cache::decrement('key', $value);
四、Cache標籤
Cache標籤是將緩存項目分組的方式,因此可以使用標籤來快速清除緩存。通過標籤可以將相關的緩存放在一起,方便統一管理。
4.1 創建標籤
創建名為 `people` 的緩存標籤:
Cache::tags('people')->put('John', $john, $minutes);
Cache::tags('people')->put('Susan', $susan, $minutes);
4.2 檢索標籤數據
可以使用tags方法來檢索單個標籤數據:
$john = Cache::tags('people')->get('John');
也可以使用tags方法來檢索多個標籤數據:
$people = Cache::tags('people', 'artists')->get('John');
4.3 清除標籤數據
使用tags方法清除標籤與其存儲的值:
Cache::tags('people')->flush();
可以通過依次傳遞每個鍵名來只移除特定標籤下的項目:
Cache::tags('people')->forget('John');
五、Cache驅動
Laravel提供了多種緩存驅動程序,開發者可以根據自身需求選擇使用適合的驅動程序。
5.1 文件緩存器
Laravel默認使用文件緩存器`file`。存儲文件位置位於`storage/framework/cache`。在生產環境下,推薦使用其他緩存器,如 Redis 或 Memcached,以獲取更快的緩存速度。
5.2 Memcached緩存器
Memcached是一種常用的互聯網緩存系統,執行速度非常快。你可以通過使用Memcached緩存器來存儲緩存數據。你也需要保證你的服務器上已安裝了Memcache服務。
以下是使用memcached緩存器的配置文件示例:
'memcached' => [
[
'host' => env('MEMCACHED_HOST', '127.0.0.1'),
'port' => env('MEMCACHED_PORT', 11211),
'weight' => 100,
],
],
5.3 Redis緩存器
Redis是一種高級的鍵值存儲系統,提供了比Memcached更豐富的數據結構。在執行速度上,Redis執行速度非常快。你需要設置正確的 Redis 主機和端口。
以下是使用redis緩存器的配置文件示例:
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
六、Cache實現
Laravel的Cache實現是建立在Symfony Cache組件的基礎之上。Symfony Cache組件提供了一個簡單和通用的緩存系統。在Laravel中Symfony Cache組件默認使用file緩存器。
6.1 文件緩存器
文件緩存器是Laravel中默認的緩存機制,可以將緩存文件存儲在本地文件系統中。
$value = Cache::store('file')->get('key');
6.2 Memcached緩存器
使用Memcached,可以用以下代碼實現獲取緩存:
$value = Cache::store('memcached')->get('key');
6.3 Redis緩存器
使用Redis,可以用以下代碼實現獲取緩存:
$value = Cache::store('redis')->get('key')
七、總結
Laravel緩存組件提供了多種可擴展的緩存策略,可以選擇適合自己的緩存器。它還支持標籤,可以根據需要進行項目分類。在應用程序中使用緩存可以有效提高性能,特別是在需要頻繁訪問數據的情況下。
原創文章,作者:CGJTH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/360981.html