phpredisを導入した環境におけるlaravel5のRedis設定
laravel5でRedisを扱うときにハマったのでメモとして残します。
前準備
composerでpredis/predisをインストールします。
$ composer require predis/predis
database.phpの編集
以下ではredisサーバはインストールしてあり,起動済みとします.
database.phpにredisの設定をする項目があるので,環境に合わせて設定しますが,デフォルトでRedisを動作させている場合はそのままの設定でかまいません.
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
次にコントローラに以下の記述を追加します.
<?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の値を取得することができました.
Author And Source
この問題について(phpredisを導入した環境におけるlaravel5のRedis設定), 我々は、より多くの情報をここで見つけました https://qiita.com/laviee/items/906da834db20c946f9be著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .