CentOSでRedisサーバを使う

CentOSでRedisサーバを使う

記事一覧CentOSでRedisサーバを使う

冗長化した Web サーバなどで、セッションの管理や、セッションや特定のユーザーに紐付く一時データを管理するのに memcache を使う場面は多いと思います。

その memcache の中でも主流なのが memcached ですが、最近では redis の言葉をよく聞くようになりました。

下記のブログ記事でもわかる通り、速度面ではかなりの評価のようです。

redis、それは危険なほどのスピード

今回は、手元の VMware にある CentOS 6.3(64bit)環境のインストール手順と設定についてまとめておきたいと思います。

phpredis.so も提供されているので、PHP との連携もすぐにできちゃいます。

Windows 上で redis サーバを立ち上げる方法もありますが、コードを書くのは Windows、Web サーバやその他ミドルウェアは VMware 上の Linux というのが私の中では一番楽です。

実際に運用する環境は Linux ですしね。

ただ、XAMPP を使って開発している人も多いかもしれませんので、Windows 上に redis サーバを立ち上げて PHP と連携する方法も次回書いておきたいと思います。

RedisのLinuxへのインストール手順

yum でも redis サーバとクライアントのインストールはできるかもしれませんが、今回はソースからインストールを行います。

最新版のバージョン 2.6.2 を取得して、make するだけでインストールは完了です。

$ cd /usr/local/src

$ wget https://redis.googlecode.com/files/redis-2.6.2.tar.gz

$ tar xvzf redis-2.6.2.tar.gz

$ cd redis-2.6.2

$ make && make install

次に設定をします。以前は redis のサイトの Installation ページに詳しく設定内容が書いてあったと思うのですが、今はなくなってしまっていますね。

redis 用の設定ファイルを配備する /etc/redis と、/var/redis のディレクトリを作成します。

その後、用意されている初期ファイルを、作成したディレクトリにコピーします。

$ mkdir /etc/redis

$ mkdir -p /var/redis/6379

$ cp utils/redis_init_script /etc/init.d/redis_6379

$ cp redis.conf /etc/redis/6379.conf

コピーが完了したら、まずは redis サーバの設定ファイルを調整します。

編集部分だけ抜粋して書いておきます。

$ vi /etc/redis/6379.conf

#daemonize no
daemonize yes

#pidfile /var/run/redis.pid
pidfile /var/run/redis_6379.pid

#logfile stdout
logfile /var/log/redis_6379.log

#dir ./
dir /var/redis/6379

次にサービスの設定をします。

chkconfig で管理できるように起動スクリプトを調整します。

$ vi /etc/init.d/redis_6379

# chkconfig: - 58 74
# description: redis_6379 is the redis daemon.

chkconfig でサービスの登録をして、起動確認と自動起動の設定をします。

$ chkconfig --add redis_6379

$ chkconfig redis_6379 on

$ /etc/init.d/redis_6379 start

$ netstat -an | grep 6379

起動に問題がなければ実際に動作確認をしてみます。

まずは定番の、foo というキーに bar という値を設定してみます。

そして、foo の中身を確認して、bar が取得できることを確認します。

また、f から始まるキーを検索して foo が見付かることも確認してみます。

他にもリストを使う機会も多くなると思いますが、詳しくはコマンドリファレンスを見るようにしましょう。

Command reference – Redis

$ redis-cli -p 6379 set foo bar

OK

$ redis-cli -p 6379 get foo

"bar" 

$ redis-cli -p 6379 keys f*

1) "foo" 

参考カテゴリ

オススメ記事

最新の投稿やよく見られているのオススメ記事一覧です。

新しいぐるなびAPIで飲食店の店舗情報取得

過去に作成した「ぐるなびAPI」のプログラムや、ぐるなびの Web Service が新しくなったこともあり、API からの情報取得プログラムを書き換えてみました。 以前の記事は下記になります。 ・ ぐるなびAPIで...

WebAPI

>>記事を確認する

NginxのFastCGIキャッシュで白い画面がキャッシュされる

以前から、トップページにアクセスすると、レスポンスステータスは 200 で返ってくるのに、画面に何も表示されない現象が稀に見受けられたので調査してみました。 さすがに機会損失にも繋がるということで、...

Nginx

>>記事を確認する

Laravel5.4の認証ユーザーのパスワードハッシュについて

Laravel で用意されている認証モジュールを利用する際、ユーザーモデル(User.php)経由で登録されるパスワードのハッシュ方法について調べてみました。 Laravel 上ではパスワード文字列を bcrypt() のヘルパー...

PHP / Laravel

>>記事を確認する

Laravel5.4のコントローラコンストラクタでAuth::user()が取得できない

Laravel5.4 で認証を通したアクセスに対して、コントローラのコンストラクタでユーザモデルの値を取得しようと思ったら、なぜか Auth::user() の値が取得できなくて悩みました。 public function __construc...

PHP / PHPフレームワーク / Laravel

>>記事を確認する

NginxのHSTS(HTTP Strict-Transport-Security)の設定

「Let's Encrypt」のおかげで、全サイト SSL 化していますが、これまで nginx の設定では、http のアクセスがあった場合に https に 301 リダイレクトさせていました。 この場合、Googlebot に http のアク...

セキュリティ / Nginx / SSL

>>記事を確認する

GoogleMapのAPIキーの認証情報にリファラURL設定

昔は API キーを指定することで、JavaScript で GoogleMap が表示できていましたが、何年か前に、そのキーに対して認証情報の追加が推奨されました。 新規で発行する場合は必須になっているかもしれませんが...

Web全般 / WebAPI

>>記事を確認する

AmazonLinuxでApache2.4+php7.1+Laravel5.5

先日、「 VagrantでCentOS6.9のイメージを使う 」の通り、CentOS6.9 には Apache2.4 と PHP7.1 で Laravel のフレームワークが使える環境を構築しました。 ただ、将来的には AWS かつ Amazon Linux 上で動か...

Apache / PHP / AWS / PHPフレームワーク / Laravel

>>記事を確認する

AWSの無料利用枠内で複数サイトをサクサクと運営する方法

MySQLでテーブル定義を取得

似たような構成のテーブルを作る時に、今までは mysqldump コマンドで -d オプションを付けて実行していました。 これでも十分に要件は満たせるのですが、MySQL のコンソールからサクっと出したい場合もある...

データベース / MySQL

>>記事を確認する

Poderosa5の登場と文字色と背景色

新しい PC を購入したので、久し振りに Poderosa のインストールをしたのですが、Poderosa-Terminal として最新バージョンの 5 が 2016 年に登場していました。 これ、職場でもインストールしてみたのですが...

Windows / ツール

>>記事を確認する