5次元のカオス

南の島の学生がつらつらと日々を書き連ねます

Redisをインストールしてみた

Redisをインストールしてみた

Redisのpub/subの機能が開発に必要になりそうだったのでRedisを開発機にインストールしてみました.

環境は以下の通り.

OS           : MacOSX mavericks
Homebrew     : 0.9.5
Redis server : 2.6.16

Redisのインストール

brew で普通にインストールします.

% brew update
% brew install redis  

インストール後の確認

% redis-server --version
Redis server v=2.6.16 sha=00000000:0 malloc=libc bits=64

バージョンがきちんと表示されれば成功だと思います.

自動起動の設定

% cp /usr/local/Cellar/redis/2.6.16/homebrew.mxcl.redis.plist ~/Library/LaunchAgents
% launchctl load -w  ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
% launchctl start homebrew.mxcl.redis

起動オプション設定

通常どおりにインストールを行うと、/usr/local/var/ 直下に、

直接DBに関する設定やファイルが生成されてしまいます.

そこで、Redis用の作業ディレクトリを作成します.

Redis用の作業ディレクトリの作成

% mkdir/usr/local/var/redis
% mkdir/usr/local/var/redis/log
% mkdir/usr/local/var/redis/run

設定ファイルの変更

% vim /usr/local/etc/redis.conf
/usr/local/var → /usr/local/var/redis/~に変更

起動オプションの変更

% vim Library/LaunchAgents/homebrew.mxcl.redis.plist
/usr/local/var → /usr/local/var/redis/~に変更

変更後、自動起動をもう一度リスタートします.

%launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
%launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist

以上で、変更が適用されると思います.

とりあえずやりたいこと

まだ導入しただけなので詳しくできるかわからないのですが、イメージで以下のような図のシステムを構築してみたいです.

f:id:pxp_ss:20131220131847p:plain

リクエストを割り振るWebServerとリクエストを実際に処理する子プロセスたちがいます.

redisをキューのような状態にしてpub/subで子プロセスにリクエストを渡すというように、

WebServerと子プロセスたちで、"同期的"に処理を行いたいというのが目的です.

※ このとき子プロセスたちには別々のリクエストを処理させたい

ユーザにレスポンスを返すときもpub/subの機能を使って子プロセスからレスポンスを受け取り

順番にユーザに返すことができないかとか考えています.(ホントにできるのか...

とりあえず、これからその周りを調べつつやっていきたいと思います.

参考