インストール

RedisPubSubはMLF計算環境プロジェクト管理サーバのSVNから提供される。

https://mlfdevsv.j-parc.jp/MlfSoftware/rep/redispubsub

RedisPubSubのインストールの前にRedis関連パッケージのインストールや設定を行う。

Redis関連パッケージ

下記のパッケージをインストールする。

sudo yum -y install redis hiredis-devel python-redis libevent-devel

Redisサーバ機能のみを計算機に設置したい場合は、下記のようにサーバ計算機の上でインストールする。

sudo yum -y install redis

CentOS7におけるRedisの自動立ち上げの設定と立ち上げの方法は下記の通り。

sudo systemctl enable redis

sudo systemctl start redis

CentOS6におけるRedisの自動立ち上げの設定と立ち上げの方法はCentOS7と異なり、下記の通り。

sudo chkconfig redis on

sudo service redis start

Redisサーバの設定

いくつか設定パラメータがある。

1つ目は、/etc/redis.confの編集で、このredisサーバがどこからでも接続できるようにするには、下記のように設定する。

bind 0.0.0.0

2つ目は、同じファイル/etc/redis.confの編集で、下記の設定はコメントアウトする。 デフォルトでは、データを定期的にディスクに書き込むことになっているが、高速性を追求するため、コメントアウトする。

#save 900 1
#save 300 10
#save 60 10000

3つ目は、redisのバッファ管理、つまり計算機の中で利用できるメモリに関するパラメータである。

client-output-buffer-limit pubsub 50gb 40gb 60

最初の50gb(デフォルト値は30mb)はhard limitと呼ばれ、バッファが50GBに達したら、その時点で接続が切れる。 次の40gb(デフォルト値は8mb) 60(デフォルト値も60)はsoft limitと呼ばれ、バッファが40GBを超えた時間が連続60秒を超えたら、接続が切れる。 接続が切れると、データの送受信ができなくなるので、このパラメータは可能な限り大きくすることが望ましい。

RedisPubSubパッケージ

パッケージを取得し展開する。

svn export https://mlfdevsv.j-parc.jp/MlfSoftware/rep/redispubsub/0.9/trunk redispubsub

さらに、makeする。

cd redispubsub/cpp
make

基本機能のテストのためにUnit Testを実施する。Unit Testに使うフレームワークはGoogle Testである。 パッケージのインストールは下記の通り。

sudo yum -y install gtest-devel

まずRedisサーバを再度立ちあげる。

sudo systemctl restart redis ( for CentOS7)
sudo service redis restart ( for CentOS6)

次にUnit Testをコンパイルしてから実行させる。

cd redispubsub/cpp/unittest
make
./gtest
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from RedisPubSub
[ RUN      ] RedisPubSub.TestTextData
[       OK ] RedisPubSub.TestTextData (1 ms)
[ RUN      ] RedisPubSub.TestBinaryData
[       OK ] RedisPubSub.TestBinaryData (1 ms)
[----------] 2 tests from RedisPubSub (2 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran. (3 ms total)
[  PASSED  ] 2 tests.

このようになればOK。