インメモリデータベースのredis(レディース)について。
キャッシュとして以前はmemcachedを使っていましたが、いろいろ多機能ということでredisをちょっと触ってみようかと。
インストール
CentOS6.9を前提にしています。epelかremiをインストールして指定し、インストールすればOKです。※CentOS7だとソースからインストールしないといけないようです。詳しくはリンク参照。
1 2 3 4 5 6 7 8 9 10 |
yum --enablerepo=remi,epel install redis redis-cli -v //redis-cli 4.0.2 //下記コマンドで起動します。 service redis start //確認方法 ps -aux redis 2486 0.0 0.1 149864 5464 ? Ssl 18:31 0:00 /usr/bin/redis-server 127.0.0.1:6379 |
またPHPで入れるには別途ライブラリが必要になります。
1 |
yum -y install php-pecl-redis |
この時点で下記のようなエラーメッセージが発生
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
エラー: パッケージ: php-pecl-redis-3.1.4-3.el6.remi.5.4.x86_64 (remi) 要求: php(api) = 20100412-x86-64 インストール: php-common-5.6.30-1.el6.remi.x86_64 (@remi-php56) php(api) = 20131106-64 利用可能: php-common-5.3.3-49.el6.x86_64 (base) php(api) = 20090626 利用可能: php-common-5.4.45-13.el6.remi.x86_64 (remi) php(api) = 20100412-x86-64 エラー: パッケージ: php-pecl-redis-3.1.4-3.el6.remi.5.4.x86_64 (remi) 要求: php(zend-abi) = 20100525-x86-64 インストール: php-common-5.6.30-1.el6.remi.x86_64 (@remi-php56) php(zend-abi) = 20131226-64 利用可能: php-common-5.3.3-49.el6.x86_64 (base) php(zend-abi) = 20090626 利用可能: php-common-5.4.45-13.el6.remi.x86_64 (remi) php(zend-abi) = 20100525-x86-64 |
リポジトリを指定してインストールして無事成功
1 |
yum --enablerepo=remi-php56 install php-pecl-redis |
自分はLaravel5.4をつかっていたのでLaravelでのインストールに関してもメモします。
Laravelから使う場合はphp-pecl-redisはいらないようです。正確に言うとphp-pecl-redisを使った方法もあるようですが、見つかりませんでした・・・
1 |
composer require predis/predis |
使用法
素のPHPから読み込むとき
1 2 3 4 5 6 |
<?php $redis = new Redis(); $connected = $redis->pconnect('127.0.0.1'); $redis->set('foo', 'foo のvalueです'); print_r($redis->get('foo')); //'foo のvalueです' |
Laravelでの使用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php namespace App\Http\Controllers; use App\Model\Item; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Redis; class ItemController extends Controller { public function index() { Redis::set('hoge', 'hoge_val'); $hoge = Redis::get('hoge'); var_dump($hoge); //hoge_val } } |
その他の使用法
単純な文字列だけではなくリスト型やハッシュ型の値をセットすることもできるようですね。
個人的によく使いそうなコマンドなど
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//ログインコマンド redis-cli //全キー取得 keys * //データの取得 get キーの名前 //特定のキーの削除 del キーの名前 //データをすべて削除 flushdb |
他参考リンク
実務的には下記のような使い方が一番汎用性はありそう。
[…] インメモリデータベース redis […]