インストール
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。