2018/12/21 - 16:54

ささっとDockerでRedis環境を構築してPHP(predis)から接続する

:

:

こんにちは、浦川です。 PHPのプロダクトにRedisを導入する機会があったので、まず最初の一歩として試したことを投稿します。

環境

  • Host OS: macOS HighSierra v10.13.6
  • Docker Desktop: Version 2.0.0.0-mac81 (29211)
  • redis: 5.0.0 (2018-11-14時点で、ElasticCacheの対応バージョンが5.0.0だったので)
  • PHP: v7.2.12
  • predis: v1.1.1

Docker コンテナー上で Redis を動かす

  • 使い捨てなので –rmをつけます
$ docker container run --name some-redis -d --rm -p 6379:6379 redis:5.0.0

Redisクライアント(redis-cli)がほしいので ホスト側(Mac)にもインストールして接続確認

$ brew install redis

$ redis-cli
127.0.0.1:6379> SET key value
OK
127.0.0.1:6379> GET key
"value"

PHP で Redisを使う

有名ライブラリ(phpredis と predis)が2つある

phpredis と predis の違い

  • phpredis/phpredis
    • Extension なので predis と比べて高速
    • Extension なので導入に一手間
  • nrk/predis
    • Composer 経由で気軽にインストールできる

predis から Redis を使う

  • predis を conposer でダウンロードする
$ mkdir predis-sample; cd $_
$ composer require predis/predis
  • 最低限のサンプル(redis.php)
<?php

require_once "vendor/autoload.php";

$client = new Predis\Client([
	'scheme' => 'tcp',
	'host' => '127.0.0.1',
	'port' => 6379,
]);
$client->set('key', 'value');
$value = $client->get('key');

echo $value;
  • 実行
$ php redis.php
value

余談

GUIツールはMedis(¥600)がシンプルで使いやすいです。

参考URL