自称Webアプリ屋、他称インフラ屋のサカベです。

今手掛けている自社内システムを構築するに辺り、毎回DBを叩くのもどうなんだろうと思う機能があり、前々から気になっていたRedisを使ってみることにしました。
思いっきり思いつきです←

今回は、RedisをCentOS上に構築して使えるようにするまでを記します。

Redisとは

Redisとは、メモリ上でKey-Value構造でデータを保持する、データベースアプリケーションです。
MySQLなどのRDBMSと違い、ストレージ上ではなくメモリ上にデータを展開するため、読み取りが非常に速いのが特徴です。
(ただしメモリ上に展開するということは、何かの拍子に消える揮発性も併せ持ちます。)

その性質から、消えても構わないが、読み取りは速くしたいデータ(キャッシュなど)の保持などに向いています。

前提の環境

  • CentOS7.3
  • Apache2.4.6
  • PHP7.1

セットアップ

1. Redisのインストール

Redisをインストールするにあたり、EPELとremiのリポジトリが必要になるので、入っていなければ追加しましょう。

# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Redisのインストール前に、依存環境である「gperftools」をEPELからインストールします。
※gperftoolsは、Google製のパフォーマンスツールで、本当はそれを使ってCPUプロファイルなどが見れるそうです。この辺りはまだ未検証。。

# yum -y install --enablerepo=epel gperftools

gperftoolsがインストール出来たら、いよいよRedisをremiからインストールします。

# yum -y install --enablerepo=remi redis

ここまでで、Redis自体のインストールは完了です。
次は設定をしていきましょう。

2. Redisの設定

次はRedisの設定を少しだけいじります。

# vi /etc/redis.conf

いつでも呼び出せるようにデーモン化します。
デフォルトではデーモン化しないようになっているので、デーモン化するよう設定を変えちゃいましょう。

# noになっているのをyesにする
daemonize yes

書き換えたら、保存します。とりあえず、今回はここだけ変えます。

3. プロセスを立ち上げる

さて、常駐していてくれないと使えないので常駐するように設定を変えます。

# systemctl enable redis.service
# systemctl start redis.service

ちゃんと立ち上がっているか、念のため確認します。

[root@localhost vagrant]# systemctl status redis.service
● redis.service - Redis persistent key-value database
   Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/redis.service.d
           └─limit.conf
   Active: active (running) since Tue 2017-04-25 12:46:42 UTC; 9min ago
 Main PID: 32283 (redis-server)
   CGroup: /system.slice/redis.service
           └─32283 /usr/bin/redis-server 127.0.0.1:6379

Apr 25 12:46:42 localhost.localdomain systemd[1]: Started Redis persistent key-value database.
Apr 25 12:46:42 localhost.localdomain systemd[1]: Starting Redis persistent key-value database...

Loaded: loaded となっているのでちゃんと起動しているようです。
プロセスとしても、

[root@localhost vagrant]# ps -ef | grep redis
redis    32283     1  0 12:46 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root     32292  3450  0 12:56 pts/0    00:00:00 grep --color=auto redis

ちゃんと6379番ポートで待ち受けているようです。

使ってみる

では、実際にRedisをCLIから使ってみましょう。
CLIから使うには、 redis-cli と入力します。

[root@localhost etc]# redis-cli
127.0.0.1:6379>

この状態になればRedisのコマンドが打てます。
※Redisの細かい使い方については今回は触れません。それは別記事か何かで書いてみようと思います。。
さて試しにいろいろセットしてみましょう。

※ちなみに set と入力するだけで、その先の引数を全て表示してくれちゃいます。なんと便利。

127.0.0.1:6379> set key value [EX seconds] [PX milliseconds] [NX|XX]

KanagawaというKeyに対して、YokohamaというValueをセットします。

127.0.0.1:6379> set Kanagawa Yokohama
OK

セットされたValueを表示してみます。

127.0.0.1:6379> get Kanagawa
"Yokohama"

簡単ですね。
こんな感じでKeyとValueのセットでデータを保持していくのがRedisです。

今回は非常にシンプルに、使えるようにするまでを記してみました。
次回はPHPからこのRedisを操作するやり方を記してみたいと思います。
その後辺りで、そもそもredisってどうやって使うのさーというのも記してみたいと思いますので、乞うご期待。

Shere
  • はてなブログ
  • Twitter
  • Facebook
Redisをセットアップして使ってみた

Writer

  • Name

    サカベ ケンイチ

  • Position

    横浜と大洗を往復する自称Webアプリ屋。

  • Profile

    必要あればサーバー構築からバックエンド、ちょっぴりフロントまで担当するWebアプリ屋。 本業はPHPエンジニア。 アプリも手を出そうとC#+Xamarin勉強中。 そして必要あれば曲も作る。なお出番は無い模様。