LoginSignup
12
11

More than 5 years have passed since last update.

phpredisを導入した環境におけるlaravel5のRedis設定

Last updated at Posted at 2016-10-21

laravel5でRedisを扱うときにハマったのでメモとして残します。

前準備

composerでpredis/predisをインストールします。

$ composer require predis/predis

database.phpの編集

以下ではredisサーバはインストールしてあり,起動済みとします.

database.phpにredisの設定をする項目があるので,環境に合わせて設定しますが,デフォルトでRedisを動作させている場合はそのままの設定でかまいません.

database.php
'redis' => [

    'cluster' => false,

    'default' => [
        'host' => '127.0.0.1',
        'port' => 6379,
        'database' => 0,
    ],
],

次にコントローラに以下の記述を追加します.

RedisController.php
<?php namespace App\Http\Controllers;

use Illuminate\Support\Facades\Redis;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class RedisController extends Controller {

    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        //
        $redis = \Illuminate\Support\Facades\Redis::connection();

        $result = $redis->get('keys');

        return $result;
    }
}

ここで

use Illuminate\Support\Facades\Redis;

はphpredisを導入していない場合は,

use Redis;

で良いのですが,どうやらlaravel5のドキュメントに記述してあるように,

注意: PECLでRedis PHP拡張をインストールしている場合、config/app.phpファイルのRedisエイリアスをリネームする必要があります。

という設定をするべきなのですが,おそらくlaravelで使うredisのクラスの読み込みとphpredisの読み込みが同時に起こってしまうためにエラーを吐くので,Redisエイリアスをリネームしてもよかったのですが,直接laravelのクラスを指定しました.

また,

$redis = Redis::connection();

が本来の記述の仕方ですが,

use Illuminate\Support\Facades\Redis;

に合わせて

$redis = \Illuminate\Support\Facades\Redis::connection();

としました.

これで無事にRedisの値を取得することができました.

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11