首頁 php教程 PHP开发 Laravel Memcached快取驅動的配置與應用方法分析

Laravel Memcached快取驅動的配置與應用方法分析

Dec 28, 2016 pm 04:32 PM

本文實例講述了Laravel Memcached快取驅動的配置與應用方法。分享給大家供大家參考,具體如下:

Memcached快取配置在任何php環境下我們都可以設定使用來提升WEB的效能。對於大型網站(資料多,訪問量大)而言,快取系統是必備組件,其為減輕資料庫負載、提高頁面存取速度、提升系統效能立下汗馬功勞。 Laravel作為一個功能完善且強大的PHP框架,自然為快取系統提供了支援。目前Laravle支援的快取驅動包括文件、數組、資料庫、APC、Memcached和Redis,並且為這些驅動提供了統一的訪問接口,這樣做的好處顯而易見:我們可以根據業務需求隨時切換緩存驅動而不用對業務邏輯程式碼做任何修改。

Laravel快取驅動程式配置位於config/cache.php,此設定數組中第一個設定項default用於指定預設快取驅動程式:

'default' => env('CACHE_DRIVER', 'file'),
登入後複製

這裡預設快取驅動為檔案快取。第二配置項stores是重頭戲,用於配置Laravel支援的6種快取驅動:

'stores' => [
  'apc' => [
    'driver' => 'apc',
  ],
  'array' => [
    'driver' => 'array',
  ],
  'database' => [
    'driver' => 'database',
    'table' => 'cache',
    'connection' => null,
  ],
  'file' => [
    'driver' => 'file',
    'path' => storage_path('framework/cache'),
  ],
  'memcached' => [
    'driver' => 'memcached',
    'servers' => [
      [
        'host' => '127.0.0.1',
        'port' => 11211,
        'weight' => 100,
      ],
    ],
  ],
  'redis' => [
    'driver' => 'redis',
    'connection' => 'default',
  ],
],
登入後複製

其中apc表示APC緩存,APC是PHP的一個擴展,其目標是為快取和最佳化PHP中間碼(opcode)提供一個免費、開源、健壯的框架。更多詳情可參考PHP官方文件:http://php.net/manual/zh/book.apc.php,APC快取和Memcached一樣都是基於記憶體的快取系統,效能相當,但限制只能用於單機緩存,不支援分散式,而實際生產環境往往不只一台web伺服器,所以相對而言,大型網站更選擇使用Memcached。

數組快取驅動(array)往往僅用於測試,好處是不會持久化,只會在一次PHP腳本執行的生命週期內有效。

檔案快取驅動(file)往往只用於本地開發測試,因為檔案快取將快取儲存到檔案中,讀取時從硬碟讀取,效能自然不如基於記憶體的快取系統如APC或Memcached以及Redis。

資料庫快取驅動程式(database)將快取資料儲存到資料庫中,使用之前需要在資料庫中新建一張表用於存放快取項,該表表結構可定義如下:

Schema::create('cache', function($table) {
  $table->string('key')->unique();
  $table->text('value');
  $table->integer('expiration');
});
登入後複製

快取本來就是將資料庫中的資料讀取後存放到快取系統,雖然資料庫快取在一定程度上提升了系統效能,但對於大型系統而言自然不是最佳選擇。

memcached快取驅動基於Memcached,使用之前需要先在系統中安裝Memcached,當然如果你使用的是Homestead虛擬機的話,已經為你安裝好了,並且開機自動啟動,我們可以使用如下指令查看其狀態及啟動連接埠:

ps -ef | grep memcached
登入後複製

正如我們前面提到的,Memcached是基於記憶體的分散式快取系統,在實際生產環境中有著廣泛使用。

Redis是近幾年才出現的快取系統,相比Memcached的鍵值對而言支援更多的資料結構,包括字串、雜湊、列表、集合和有序集合等,正因如此,又被稱為資料結構伺服器,Redis也是基於記憶體的,但是可以持久化到硬碟。除了作為快取系統外,還可以用作NoSQL資料庫、訊息佇列等。總而言之,功能很強。關於Redis我們後續會單獨講,所以快取實例這一塊我們將以Memcached作為快取驅動為例,系統的講講Laravel中如何使用快取。

從設定檔說起,memcached設定項中的driver指定使用的快取驅動類型為memcached。 servers表示使用的安裝Memcached的伺服器,host代表主機名,port代表Memcached監聽的連接埠號,預設為11211,weight代表權重,因為很多時候我們配置了多台Memcached伺服器,權重表示存取的優先權。

作為測試,這裡我們就使用預設配置好了。

開始之前我們要將預設快取驅動改成memcached:

'default' => env('CACHE_DRIVER', 'memcached'),
登入後複製

此外,config/cache.php設定檔中還有最後一個設定檔prefix,用於設定快取鍵的前綴,對於基於記憶體的快取系統而言,快取項目可能被同一主機上的多個應用程式使用,所以加上前綴以示區別還是很有必要的。這裡我們使用laravelacademy作為前綴好了:

'prefix' => 'laravelacademy',
登入後複製

希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。

更多Laravel Memcached快取驅動的配置與應用方法分析相關文章請關注PHP中文網!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)