天天看點

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.1
REDIS_PASSWORD=null
REDIS_PORT=6379
           

這些是相關資訊,其實你都不需要改動。在這我們先不說redis叢集的問題,先說單個redis的使用。

測試

首先需要一個路由:

//redis測試
Route::get('testRedis','[email protected]')->name('testRedis');
           

利用artisan指令建立一個控制器

php artisan make:controller RedisController
           

然後我們在該控制器中引入對應的類和建立一個方法。 

因為我們通過composer安裝後,laravel架構已經幫我們将redis在app.php配置檔案中進行了注冊和門面支援,是以直接使用即可。(Member類是我自己測試的資料表模型,無需理會)

<?php

namespace 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 

點選下載下傳:4.0.8-windows-redis 密碼: sxyd

其實接下來的也就是windows如何安裝Redis的教程

将剛剛下載下傳的壓縮包解壓縮,修改名稱為Redis(可不修改)放置到C槽

在該路徑下打開cmd視窗,直接輸入redis.exe

顯示以下内容表示安裝并且啟動成功。(注意:如果你想在指令行進行操作,應該再打開一個cmd視窗,這個也不能關掉)

如果不想每次都到該目錄啟動,請配置環境變量即可。

現在你重新運作剛剛的Laravel中的請求就會正常運作。

使用 predis 操作 Redis 資料庫,怎樣設定 Key 的生命周期

Redis::setex($key,$ttl,$value);