首頁  >  文章  >  php框架  >  Laravel開發:如何使用Laravel Redis實現資料快取?

Laravel開發:如何使用Laravel Redis實現資料快取?

WBOY
WBOY原創
2023-06-13 17:45:391614瀏覽

Laravel是一個非常流行的PHP框架,廣泛應用於Web開發。 Laravel框架提供了許多簡單的API和元件,其中包括資料快取。 Redis是流行的開源記憶體資料結構存儲,可以非常有效地提高資料查詢和讀取效率。本文將介紹如何在Laravel中使用Laravel Redis實現資料緩存,以提高Web應用程式的效能。

安裝

首先,我們需要安裝Laravel Redis。可以透過執行以下命令使用Composer安裝:

composer require predis/predis

使用predis/predis套件實作Laravel Redis快取驅動程式。完成安裝後,需要在.env檔案中設定REDIS_HOST,REDIS_PASSWORD和REDIS_PORT變數。

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

配置Laravel Redis

修改config/cache.php檔案中的配置,將'default'選項更改為'redis'使用Redis作為快取驅動程式。另外,在'redis'數組中設定Redis連線資訊。

'default' => env('CACHE_DRIVER', 'redis'),

'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_DB', 0),
    ],
],

使用Laravel Redis

一旦設定好了Laravel Redis的驅動程式和配置,我們可以開始使用它了。以下是透過Laravel Redis進行資料快取的3種方法:

普通快取

使用Laravel Redis最簡單的方法是使用Cache門面的基本方法。 Laravel框架提供了許多高級功能,但這裡強調最基本的快取處理方法。可以透過以下程式碼進行快取:

use IlluminateSupportFacadesCache;

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

上述程式碼將結果從"users"表中快取到Redis中。在此之後,呼叫該金鑰時將重複使用Redis中的快取副本,而不是從來源資料庫重新產生結果。 Cache::remember方法的第二個參數是快取有效期限(以分鐘為單位),或者可以使用Cache::forever方法將資料永久保存到快取中。

標籤快取

另一種使用Laravel Redis的高階快取方法是使用標籤。標籤可讓您建立和擷取多個快取條目,然後使用標籤清除所有這些條目。標籤緩存提供了對緩存生命週期的更好控制。

use IlluminateSupportFacadesCache;

Cache::tags(['people', 'artists'])->put('John', $john, $minutes);
Cache::tags(['people', 'authors'])->put('Jane', $jane, $minutes);

上述程式碼將John儲存在兩個標籤peopleartists中,並將Jane儲存在兩個標籤peopleauthors中。現在可以使用特定標籤的flush方法,僅清除該標籤下的所有快取項目。

Cache::tags(['people'])->flush();

上述程式碼清除所有帶有people標籤的快取並將它們從Redis中刪除。

輔助函數

Laravel Redis也提供了一些較少功能但使用起來更方便的輔助函數。以下是其中一些:

  • cache()->put('key', 'value', $minutes) 快取輸入值一定時間。
  • cache()->get('key') 檢索已快取的值。
  • cache()->remember('key', $minutes, function() { return 'value'; }) 擷取任何快取項,失敗時傳回新值。
  • cache()->rememberForever() 永遠記住快取項目。

結語

Laravel Redis提供了一些簡單易用的方法來快取數據,在Web應用程式中實現高效的數據讀取和查詢。 Laravel框架幾乎完全由Composer支持,這使得使用Laravel Redis變得容易。在大型網路應用程式上使用Laravel Redis快取的好處在於,它可以減少從較慢的資料庫浪費時間,並提高動態資料的查詢速度。

以上是Laravel開發:如何使用Laravel Redis實現資料快取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn