Laravel Memcached緩存驅(qū)動的配置與應(yīng)用方法分析
本文實例講述了Laravel Memcached緩存驅(qū)動的配置與應(yīng)用方法。分享給大家供大家參考,具體如下:
Memcached緩存配置在任何php環(huán)境下我們都可以配置使用來提升WEB的性能。對于大型網(wǎng)站(數(shù)據(jù)多,訪問量大)而言,緩存系統(tǒng)是必備組件,其為減輕數(shù)據(jù)庫負載、提高頁面訪問速度、提升系統(tǒng)性能立下汗馬功勞。Laravel作為一個功能完善且強大的PHP框架,自然為緩存系統(tǒng)提供了支持。目前Laravle支持的緩存驅(qū)動包括文件、數(shù)組、數(shù)據(jù)庫、APC、Memcached和Redis,并且為這些驅(qū)動提供了統(tǒng)一的存取接口,這樣做的好處顯而易見:我們可以根據(jù)業(yè)務(wù)需求隨時切換緩存驅(qū)動而不用對業(yè)務(wù)邏輯代碼做任何修改。
Laravel緩存驅(qū)動配置位于config/cache.php,該配置數(shù)組中第一個配置項default用于指定默認緩存驅(qū)動:
'default' => env('CACHE_DRIVER', 'file'),
這里默認緩存驅(qū)動為文件緩存。第二配置項stores是重頭戲,用于配置Laravel支持的6種緩存驅(qū)動:
'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的一個擴展,其目標(biāo)是為緩存和優(yōu)化PHP中間碼(opcode)提供一個免費、開源、健壯的框架。更多詳情可參考PHP官方文檔:http://php.net/manual/zh/book.apc.php,APC緩存和Memcached一樣都是基于內(nèi)存的緩存系統(tǒng),性能相當(dāng),但局限是只能用于單機緩存,不支持分布式,而實際生產(chǎn)環(huán)境往往并不止一臺web服務(wù)器,所以相對而言,大型網(wǎng)站更多選擇使用Memcached。
數(shù)組緩存驅(qū)動(array)往往僅僅用于測試,好處是不會持久化,只會在一次PHP腳本執(zhí)行的生命周期內(nèi)有效。
文件緩存驅(qū)動(file)往往只用于本地開發(fā)測試,因為文件緩存將緩存存儲到文件中,讀取時從硬盤讀取,性能自然不及基于內(nèi)存的緩存系統(tǒng)如APC或Memcached以及Redis。
數(shù)據(jù)庫緩存驅(qū)動(database)將緩存數(shù)據(jù)存儲到數(shù)據(jù)庫中,使用之前需要在數(shù)據(jù)庫中新建一張表用于存放緩存項,該表表結(jié)構(gòu)可定義如下:
Schema::create('cache', function($table) { $table->string('key')->unique(); $table->text('value'); $table->integer('expiration'); });
緩存本來就是將數(shù)據(jù)庫中的數(shù)據(jù)讀取后存放到緩存系統(tǒng),雖然數(shù)據(jù)庫緩存在一定程度上提升了系統(tǒng)性能,但對于大型系統(tǒng)而言自然不是最佳選擇。
memcached緩存驅(qū)動基于Memcached,使用之前需要先在系統(tǒng)中安裝Memcached,當(dāng)然如果你使用的是Homestead虛擬機的話,已經(jīng)為你安裝好了,并且開機自動啟動,我們可以使用如下指令查看其狀態(tài)及啟動端口:
ps -ef | grep memcached
正如我們前面提到的,Memcached是基于內(nèi)存的分布式緩存系統(tǒng),在實際生產(chǎn)環(huán)境中有著廣泛使用。
Redis是近幾年才出現(xiàn)的緩存系統(tǒng),相比Memcached的鍵值對而言支持更多的數(shù)據(jù)結(jié)構(gòu),包括字符串、哈希、列表、集合和有序集合等,正因如此,又被稱作數(shù)據(jù)結(jié)構(gòu)服務(wù)器,Redis也是基于內(nèi)存的,但是可以持久化到硬盤。除了作為緩存系統(tǒng)外,還可以用作NoSQL數(shù)據(jù)庫、消息隊列等??偠灾δ芎軓姶?。關(guān)于Redis我們后續(xù)會單獨講,所以緩存實例這一塊我們將以Memcached作為緩存驅(qū)動為例,系統(tǒng)的講講Laravel中如何使用緩存。
從配置文件說起,memcached配置項中的driver指定使用的緩存驅(qū)動類型為memcached。servers表示使用的安裝Memcached的服務(wù)器,host代表主機名,port代表Memcached監(jiān)聽的端口號,默認為11211,weight代表權(quán)重,因為很多時候我們配置了多臺Memcached服務(wù)器,權(quán)重表示存取的優(yōu)先級。
作為測試,這里我們就使用默認配置好了。
開始之前我們要將默認緩存驅(qū)動改成memcached:
'default' => env('CACHE_DRIVER', 'memcached'),
此外,config/cache.php配置文件中還有最后一個配置項prefix,用于配置緩存鍵的前綴,對于基于內(nèi)存的緩存系統(tǒng)而言,緩存項可能被同一主機上的多個應(yīng)用使用,所以加上前綴以示區(qū)別還是很有必要的。這里我們使用laravelacademy作為前綴好了:
'prefix' => 'laravelacademy',
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php日期與時間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。
- Laravel如何友好的修改.env配置文件詳解
- Nginx中運行PHP框架Laravel的配置文件分享
- Laravel框架環(huán)境與配置操作實例分析
- Laravel 前端資源配置教程
- laravel config文件配置全局變量的例子
- Laravel數(shù)據(jù)庫讀寫分離配置的方法
- Laravel 數(shù)據(jù)庫加密及數(shù)據(jù)庫表前綴配置方法
- laravel框架數(shù)據(jù)庫配置及操作數(shù)據(jù)庫示例
- laravel-admin自動生成模塊,及相關(guān)基礎(chǔ)配置方法
- laravel 配置路由 api和web定義的路由的區(qū)別詳解
- Laravel5.6框架使用CKEditor5相關(guān)配置詳解
- Laravel配置全局公共函數(shù)的方法步驟
- Laravel5框架自定義錯誤頁面配置操作示例
- laravel配置Redis多個庫的實現(xiàn)方法
- nginx實現(xiàn)一個域名配置多個laravel項目的方法示例
- laravel 框架配置404等異常頁面
- Laravel 5.5官方推薦的Nginx配置學(xué)習(xí)教程
- Laravel 5+ .env環(huán)境配置文件詳解
相關(guān)文章
PHP設(shè)計模式之工廠模式(Factory)入門與應(yīng)用詳解
這篇文章主要介紹了PHP設(shè)計模式之工廠模式(Factory),結(jié)合實例形式詳細分析了PHP工廠模式的概念、原理、基本應(yīng)用與相關(guān)操作注意事項,需要的朋友可以參考下2019-12-12PHP中ID設(shè)置自增后不連續(xù)的原因分析及解決辦法
這篇文章主要介紹了PHP中ID設(shè)置自增后不連續(xù)的原因分析及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-08-08PHP抓取網(wǎng)頁、解析HTML常用的方法總結(jié)
這篇文章主要介紹了PHP抓取網(wǎng)頁、解析HTML常用的方法總結(jié),本文只是對可以實現(xiàn)這兩個需求的方法作了總結(jié),只介紹方法,不介紹如何實現(xiàn),需要的朋友可以參考下2015-07-07php 使用mpdf實現(xiàn)指定字段配置字體樣式的方法
前兩天在做一個pdf導(dǎo)出功能,使用的插件是kartik-v/yii2-mpdf,此插件使用的是mpdf。接下來通過本文給大家介紹php 使用mpdf實現(xiàn)指定字段配置字體樣式的方法,需要的朋友可以參考下2019-07-07PHP利用正則表達式實現(xiàn)手機號碼中間4位用星號(*)替換顯示功能
為了我們的隱私,所以我們把手機號碼部分數(shù)字隱藏掉,今天小編給大家?guī)砹薖HP利用正則表達式實現(xiàn)手機號碼中間4位用星號(*)替換顯示,需要的朋友參考下吧2017-10-10