這篇文章主要介紹了Laravel架構使用Redis的方法,結合執行個體形式較為詳細的分析了Laravel架構中Redis資料庫配置、使用方法及相關操作注意事項,需要的朋友可以參考下
本文執行個體講述了Laravel架構使用Redis的方法。分享給大家供大家參考,具體如下:
安裝
laravel中使用redis首先需要你通過 Composer 安裝 predis/predis 包:
composer require predis/predis
配置
redis的設定檔是:config/database.php
'redis' => [ 'client' => 'predis', 'default' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD',null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ],
這個自己測試玩的時候不需要改動,另外一個地方就是.env檔案
REDIS_HOST=127.0.0.1REDIS_PASSWORD=nullREDIS_PORT=6379
這些是相關資訊,其實你都不需要改動。在這我們先不說redis叢集的問題,先說單個redis的使用。
測試
首先需要一個路由:
//redis測試Route::get('testRedis','RedisController@testRedis')->name('testRedis');
利用artisan命令建立一個控制器
php artisan make:controller RedisController
然後我們在該控制器中引入對應的類和建立一個方法。
因為我們通過composer安裝後,laravel架構已經幫我們將redis在app.php設定檔中進行了註冊和門面支援,所以直接使用即可。(Member類是我自己測試的資料表模型,無需理會)
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Models\Member;use Illuminate\Support\Facades\Redis;class RedisController extends Controller{ public function testRedis() { Redis::set('name', 'guwenjie'); $values = Redis::get('name'); dd($values); //輸出:"guwenjie" //加一個小例子比如網站首頁某個人員或者某條新聞日訪問量特別高,可以儲存進redis,減輕記憶體壓力 $userinfo = Member::find(1200); Redis::set('user_key',$userinfo); if(Redis::exists('user_key')){ $values = Redis::get('user_key'); }else{ $values = Member::find(1200);//此處為了測試你可以將id=1200改為另一個id } dump($values); }}
錯誤問題
在你做完以上操作啟動並執行時候,也許會報這個錯誤:
(1/1) ConnectionException����Ŀ����������ܾ��������ӡ� [tcp://127.0.0.1:6379]in AbstractConnection.php (line 155)at AbstractConnection->onConnectionError('����Ŀ����������ܾ��������ӡ�', 10061)in StreamConnection.php (line 128)....
其實這個問題不算問題,但是可能很多人剛用的時候會踩坑。
這是因為你的伺服器上沒有安裝和啟動redis服務,就像mysql一樣,使用的前提是安裝並且成功啟動了。
我是在windows下測試的,就以windows說事。後續會寫相關的redis文章,Linux的安裝,啟動使用等都會介紹。
首先下載windows版本:https://redis.io/download
或者使用我下載好的,版本為:4.0.8
其實接下來的也就是windows如何安裝Redis的教程
將剛剛下載的壓縮包解壓縮,修改名稱為Redis(可不修改)放置到C盤
在該路徑下開啟cmd視窗,直接輸入redis.exe
顯示以下內容表示安裝並且啟動成功。(注意:如果你想在命令列進行操作,應該再開啟一個cmd視窗,這個也不能關掉)
如果不想每次都到該目錄啟動,請配置環境變數即可。
現在你重新運行剛剛的Laravel中的請求就會正常運行。