XAMPP に Redis をインストールする方法
最近のWebアプリでは、キャッシュやセッションを保存する際に、Redis がよく使われていたりします。 しかしながら Redis は XAMPP には含まれていないため、XAMPP から Redis を使うためには XAMPP の環境に少し手を加える必要があります。 そこで、その手順を記載しておきます。いまさら感も多々ありますが、忘れやすい自分への備忘録です。
Windows 版の Redis サーバーをインストールする
何はともあれ、まずは Windows に Redis サーバーをインストールする必要があります。 Windows 版の Redis サーバーは、Redis の公式サイトでは提供されていないのですが、 Microsoft が Redis on Windows という名前で提供してくれていますので、そちらをダウンロードしてインストールします。
バージョンは、現時点での最新版で、「Pre-release」となっている 3.2.100 をオススメします。 「Latest release」となっている 3.0.504 は、何故か起動しませんでした。
https://github.com/MicrosoftArchive/redis/releases
Redis on Windows のインストール
インストーラー(.msi)に従ってインストールすれば特に迷うこともないかと思います。


「Add the Redis installation folder to the PATH environment variable.」のチェックをつけておくと、環境変数のPATHに追加されるので便利です。 ポートはデフォルトで「6379」になるようです。
Redis on Windows を起動 / 停止する
インストーラー(.msi)を使用してインストールした場合、Redis は既に Windows サービスとしてインストールされて自動的に起動しています。 なので、他の作業は必要ありません。
もし、手動で停止させたり再起動させたい場合は、サービス画面もしくはコマンドから行えます。
サービス画面から起動 / 停止する場合
Windows 10 の場合は、「スタートメニュー > Windows 管理ツール > サービス」の「Redis」のプロパティで行えます。 起動しているかどうかは「状態」の欄で確認できます。

コマンドから起動 / 停止する場合
コマンドプロンプトで下記のコマンドを実行すると行えます。インストール時にPATHに追加していない場合はフルパスで実行しましょう。
# サービスを開始する場合 redis-server --service-start
# サービスを停止する場合 redis-server --service-stop
Redis on Windows の設定を変更する
もし、インストール後にポート番号などの設定を変更したくなった場合は、 "%ProgramFiles%\Redis\redis.windows-service.conf" ファイルの内容を変更して、サービスを再起動すると変更できます。
Redis on Windows に接続し操作する
Redis on Windows に接続して、何か操作する場合は、redis-cli
コマンドで行えます。
redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379> set foo "bar" OK 127.0.0.1:6379> get foo "bar" 127.0.0.1:6379> del foo (integer) 1 127.0.0.1:6379> exit
GUIクライアントから接続する
Redis に接続して内容を見たいなと思ったとき、毎回 redis-cli
コマンドを実行するのも面倒なので、GUIのクライアントがあった方が便利かと思います。
MySQL でいうところの MySQL Workbench みたいなやつです。たくさんありそうなので、有名そうな Redis Desktop Manager の使い方を記載しておきます。
Redis Desktop Manager のインストール
以前は無料で使えたのですが、最新版の ver 0.9.9 だと有料版になってしまっています。 なので、まだ無料版だったころの古いバージョンの 0.9.3 を使います。
https://sourceforge.net/projects/redis-desktop-manager.mirror/files/

0.9.3 がダウンロードできれば、あとはインストーラーに従ってインストールすれば特に迷うこともないかと思います。

Redis Desktop Manager の使い方
左上の「Connect to Redis Server」から、接続情報を入力すれば接続できます。 シンプルなUIなので、特に悩むこともないと思います。

PHP から接続する
さて、ここからが本番です。 PHP から接続する方法で、Redis公式からオススメされている方法は2つあります。 phpredis と、Predis です。どちらを使うかは環境に合わせて選択してください。
phpredis
phpredis は、C言語で記述された PHP の拡張ライブラリ(PECL)です。 C言語で記述されているため高速に動作しますが、インストールがとても面倒です。
https://github.com/phpredis/phpredisphpredis をインストール
pecl
コマンドからインストールすることもできるようなのですが、面倒なので DLL をダウンロードしてしまいましょう。
ダウンロードする DLL は、インストールする環境の PHP によって異なりますので、環境に合わせて選択してください。
Windows が 64bit でも、XAMPP の PHP が 32bit なら x86 です。phpinfo()
で確認しましょう。


ダウンロードしたら解凍して、その中にある "php_redis.dll" ファイルを、XAMPP の PHP の ext ディレクトリ(C:/xampp/php/ext)に持っていきます。

次に、先ほど ext ディレクトリに追加した "php_redis.dll" ファイルを PHP が読み込むように php.ini ファイル(C:/xampp/php/php.ini) に追記し、Apache を再起動します。
extension=redis
phpinfo()
を表示し、Redis の項目が表示されていればインストール完了です。

phpredis から接続し操作する
Redis クラスが、PHP の組み込みのクラスとして使用できるようになってます。
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo $redis->ping(); $redis->set('foo', 'bar'); echo $redis->get('foo'); $redis->del('foo'); $redis->close();
Predis を使う
Predis は、PHP のみで記載されているライブラリです。 動作速度は PECL を使うよりは若干劣ると思われますが、インストールがとても簡単なので気軽に使えます。
https://github.com/nrk/predisPredis をインストール
composer を使ってインストールします。以上。簡単ですね。
composer require predis/predis
Predis から接続し操作する
composer 経由なので autoloader を読み込んで、クラス名の名前空間を解決してやればすぐに使えます。
<?php require_once __DIR__ . '/vendor/autoload.php'; $client = new Predis\Client([ 'host' => '127.0.0.1', 'port' => 6379, ]); echo $client->ping(); echo "\n"; $client->set('foo', 'bar'); echo $client->get('foo'); echo "\n"; $client->del('foo'); $client->disconnect();
まとめ
しんどい。
参考サイト
- Redis
- GitHub - MicrosoftArchive/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes
- GitHub - phpredis/phpredis: A PHP extension for Redis
- GitHub - nrk/predis: Flexible and feature-complete Redis client for PHP and HHVM
- Windows: PhpRedisとPredisの使用準備 - Qiita
- redis-cliの使い方 - Qiita