XAMPP に Redis をインストールする方法

はてなブックマーク
2019/01/20 02:34:34

最近の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_download.png

Redis on Windows のインストール

インストーラー(.msi)に従ってインストールすれば特に迷うこともないかと思います。

redis_on_windows_1.png redis_on_windows_2.png

「Add the Redis installation folder to the PATH environment variable.」のチェックをつけておくと、環境変数のPATHに追加されるので便利です。 ポートはデフォルトで「6379」になるようです。

Redis on Windows を起動 / 停止する

インストーラー(.msi)を使用してインストールした場合、Redis は既に Windows サービスとしてインストールされて自動的に起動しています。 なので、他の作業は必要ありません。

もし、手動で停止させたり再起動させたい場合は、サービス画面もしくはコマンドから行えます。

サービス画面から起動 / 停止する場合

Windows 10 の場合は、「スタートメニュー > Windows 管理ツール > サービス」の「Redis」のプロパティで行えます。 起動しているかどうかは「状態」の欄で確認できます。

service.png

コマンドから起動 / 停止する場合

コマンドプロンプトで下記のコマンドを実行すると行えます。インストール時に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 の使い方を記載しておきます。

https://redisdesktop.com/

Redis Desktop Manager のインストール

以前は無料で使えたのですが、最新版の ver 0.9.9 だと有料版になってしまっています。 なので、まだ無料版だったころの古いバージョンの 0.9.3 を使います。

https://sourceforge.net/projects/redis-desktop-manager.mirror/files/
rdm_download_1.png rdm_download_2.png

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

rdm_install.png

Redis Desktop Manager の使い方

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

rdm.png

PHPから接続する

さて、ここからが本番です。 PHPから接続する方法で、Redis公式からオススメされている方法は2つあります。 phpredis と、Predis です。どちらを使うかは環境に合わせて選択してください。

phpredis

phpredis は、C言語で記述されたPHPの拡張ライブラリ(PECL)です。 C言語で記述されているため高速に動作しますが、インストールがとても面倒です。

https://github.com/phpredis/phpredis

phpredis をインストール

PECLコマンドからインストールすることもできるようなのですが、面倒なので DLL をダウンロードしてしまいましょう。 ダウンロードする DLL は、インストールする環境の PHP によって異なりますので、環境に合わせて選択してください。 Windows が 64bit でも、XAMPP の PHP が 32bit なら x86 です。phpinfo() で確認しましょう。 https://pecl.php.net/package/redis

pecl_1.png pecl_2.png

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

php_redis_dll.png

次に、先ほど ext ディレクトリに追加した "php_redis.dll" ファイルを PHP が読み込むように php.ini ファイル(C:/xampp/php/php.ini) に追記し、Apache を再起動します。

extension=redis

phpinfo() を表示し、Redis の項目が表示されていればインストール完了です。

phpinfo.png

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/predis

Predis をインストール

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();

まとめ

しんどい。

参考サイト