關於laravel使用Redis實現網站快取讀取的方法
這篇文章主要為大家介紹了關於laravel使用Redis實現網站快取讀取的相關資料,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們來一起學習學習吧。
redis的簡介
#Redis 是完全開源免費的,遵守BSD協議,是一個高效能的key-value資料庫。 Redis 與其他 key - value
快取產品有以下三個特點: Redis支援資料的持久化,可以將記憶體中的資料保持在磁碟中,重啟的時候可以再次載入進行使用。
Redis不僅支援簡單的key-value類型的數據,同時也提供list,set,zset,hash等資料結構的儲存。
Redis支援資料的備份,即master-slave模式的資料備份。
Redis 優勢
#效能極高– Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
豐富的資料型別 – Redis支援二進位案例的 Strings, Lists, Hashes, Sets 和 Ordered Sets 資料型別運算。
原子 – Redis的所有操作都是原子性的,同時Redis也支援對幾個操作全併後的原子性執行。
豐富的特性 – Redis也支援 publish/subscribe, 通知, key 過期等等特性。
如何安裝redis
#1.Ubuntu(因為我使用的是Homestead環境虛擬機器是Ubuntu的所以只用過這一種方法安裝)
官方給的Ubuntu安裝方法
$sudo apt-get update $sudo apt-get install redis-server
由於我的網站採用的laravel的框架,要使用composer的方法安裝
composer require predis/predis
如果安裝了lumen微框架還需要安裝illuminate/redis (5.2.*)
composer require illuminate/redis (5.2.*)
##如果安裝了lumen
//需要在bootstrap/app.php里面加入此段代码 $app->register(Illuminate\Redis\RedisServiceProvider::class); $app->configure('database');
Redis可以當主資料庫,所以Laravel中Redis的設定資訊位於config/database.php中:
'redis' => [ 'cluster' => false, 'default' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], ],
#其中cluster選項表示是否在多個Redis節點間進行分片,這裡我們本地測試只有一個節點故將其設定為false。
default選項表示預設Redis主機連接,這裡Redis和Web伺服器共用一台主機,所以host為127.0.0.1,Redis預設連接埠是6379。
此外,default選項也支援更多連接參數(如果需要的話):
參數 | 意義 | 預設值 |
---|---|---|
host | #伺服器IP位址/主機名稱 | 127.0.0.1 |
port | Redis伺服器監聽的連接埠號碼 | #6379 |
password | 如果伺服器需要認證密碼 | 不使用密碼 |
database | 連接時選擇的資料庫索引 | 沒有設定索引 |
timeout | #連線到Redis伺服器逾時時間 | 5秒 |
read_write_timeout | 透過網路連線進行讀寫操作的逾時時間 | 系統預設(不限制逾時時間的話設定為-1) |
read_write_timeout |透過網路連線進行讀寫操作的逾時時間|系統預設(不限制逾時時間的話設定為-1)
#另外Redis如果是作為快取工具,還需要在config/cache.php設定redis選項:
'redis' => [ 'driver' => 'redis', 'connection' => 'default', ],
這裡的connection對應config/database中redis的默認主機default配置。
完成上述配置之後我們就可以在應用程式碼中使用Redis進行資料存取了。
看一個實例--laravel的mysql與Redis搭配
我的想法是在讀取的時候會先去快取中去找,如果找到那就大吉大利了,找不到再去資料庫中查找並且調到快取中。
if (Cache::has($key)){ //首先查寻cache如果找到 $values = Cache::get($>key); //直接读取cache return $values; }else{ //如果cache里面没有 $values = DB::select($sql); Cache::put($key,$value,$time); return $values; }
但是laravel的cache也提供了個remember函數
$values = Cache::remember($key,$time,function () { return DB::select($this->sql); });
如果快取有直接讀取並傳回,如果快取項目在快取中不存在,則傳回給remember 方法的閉包將會被運行,而且閉包的運行結果將會被存放在快取中。
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
#
以上是關於laravel使用Redis實現網站快取讀取的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

Laravel - Artisan 指令 - Laravel 5.7 提供了處理和測試新指令的新方法。它包括測試 artisan 命令的新功能,下面提到了演示?

Laravel9和CodeIgniter4的最新版本提供了更新的功能和改進。 Laravel9採用MVC架構,提供資料庫遷移、驗證及模板引擎等功能。 CodeIgniter4採用HMVC架構,提供路由、ORM和快取。在性能方面,Laravel9的基於服務提供者設計模式和CodeIgniter4的輕量級框架使其具有出色的性能。在實際應用中,Laravel9適用於需要靈活性和強大功能的複雜項目,而CodeIgniter4適用於快速開發和小型應用程式。

BitgetLaunchpool是一個為所有加密貨幣愛好者而設計的動態平台。 BitgetLaunchpool以其獨特的產品脫穎而出。在這裡,您可以質押您的代幣來解鎖更多獎勵,包括空投、高額回報,以及專屬早期參與者的豐厚獎金池。什麼是BitgetLaunchpool? BitgetLaunchpool是一個加密貨幣平台,可以透過使用者友善的條款和條件來質押和賺取代幣。透過在Launchpool中投入BGB或其他代幣,用戶有機會獲得免費空投、收益和參與豐厚的獎金池。質押資產的收益在T+1小時內計算,獎勵按

對於初學者來說,CodeIgniter的學習曲線更平緩,功能較少,但涵蓋了基本需求。 Laravel提供了更廣泛的功能集,但學習曲線稍陡。在性能方面,Laravel和CodeIgniter都表現出色。 Laravel有更廣泛的文件和活躍的社群支持,而CodeIgniter更簡單、輕量級,具有強大的安全功能。在建立部落格應用程式的實戰案例中,Laravel的EloquentORM簡化了資料操作,而CodeIgniter需要更多的手動配置。

在選擇大型專案框架時,Laravel和CodeIgniter各有優勢。 Laravel針對企業級應用程式而設計,提供模組化設計、相依性注入和強大的功能集。 CodeIgniter是一款輕量級框架,更適合小型到中型項目,強調速度和易用性。對於具有複雜需求和大量用戶的大型項目,Laravel的強大功能和可擴展性更為合適。而對於簡單專案或資源有限的情況下,CodeIgniter的輕量級和快速開發能力則較為理想。

對於小型項目,Laravel適用於大型項目,需要強大的功能和安全性。 CodeIgniter適用於非常小的項目,需要輕量級和易用性。

Laravel - Facades - Facades 為應用程式的服務容器中可用的類別提供靜態介面。 Laravel 外觀充當服務容器中底層類別的靜態代理,提供簡潔、exp 的優點

Laravel - 轉儲伺服器 - Laravel 轉儲伺服器隨 Laravel 5.7 版本提供。先前的版本不包括任何轉儲伺服器。轉儲伺服器將成為 laravel/laravel Composer 檔案中的開發依賴項。
