たんたんめん日記

ソシャゲ関連のなんでもやさん備忘録

【Redis】Redsminについて

Redsmin

Redisの管理ツールはいくつか出てきていますが、 ちょっと毛色の違うredsminというツールのご紹介です。

特徴

Redisの管理をSaas的に提供しています。

f:id:dnond:20130807172018p:plain

https://redsmin.com/でアカウント(現在はβテスト用アカウント)を作成し、手持ちのRedisサーバーを登録すると、このサイト上でRedisを管理出来るようになる寸法です。

Redisサーバーが公開されている場合は、IPアドレスとポートを指定してやれば接続出来ます。 公開されていない場合、node.js製の仲介アプリケーションをインストールしてredsminと接続します。

具体的には↓のような感じです。

npm install redsmin -g && RKEY=hogehoge redsmin set_key && redsmin start

RKEYは、redsminに監視するサーバーを追加した時に発行されます。

これでredsmin.comから自分のRedisサーバーにアクセス出来るようになります。

f:id:dnond:20130807172101p:plain


何が良いのか?

Redis自体のインストールは簡単ですが、管理用のGUIを使いたい場合は、apacheを立ち上げてphpredminなどを設置する必要があったります。

redsminであれば、Webサイト上で登録し、node.jsのアプリケーションを立ち上げておけば良いのでお手軽です。


現状で実装されているは下記のような感じのようです。

  • key検索

    hashもlistも混ざって表示されるので分かりにくいですが、、

  • 値の追加

    String、Hash、List等を指定して、値を追加出来ます。

  • ターミナル

    直接redisのコマンドを発行することが出来ます。

  • クライアントリスト

    接続中のクライアント一覧です。

  • slowlog

    slowlogを確認出来るようです。(未確認)

  • configuration

    設定値を確認することが出来ます。

あと、メモリーやkey数などのモニタリング機能もあるようです。
こちらはリリース時には有料になるようですが、 β版では申し込めば使わせてもらえるみたいです。


何が悪いのか?

他のSaasでも言えるのですが、機密性の高いデータを扱うのは不安を感じます。
ダミーのデータを扱うだけにしておいた方が良いかもしれません。

あと、まだβ版ということで機能が少なかったり、開発中だったりするので今後に期待という感じです。

動作確認をサクッと行いたい場合等に便利そうです。

【Celery】Celery 感想編

色々使ってみての感想

望んでいた機能はすべて持っていると感じましたのですが、業務で使う場合はいくつか気になるところもあります。

  • 本当に排他ロックしているのか。

    していると思うんですが、複数のworkerが1つのタスクを同時に行うとマズイです。

  • いつまでSUCCESSのタスクを保持しているのか。

    たぶん自動削除するような設定があると思うんですが、、、

  • 高機能過ぎる

    本当に使いこなせるの?トラブった時、大丈夫?

  • BROKERのスケールアウトについて

    Redisが1マスターでは負荷的に辛くなってきた時、どうするか。

詳しく調べれば分かることばかりかと思うので、テスト的なサイトでも作って慣らし運転して行きたいと思います。


【Celery】Celery 要件と環境編
【Celery】Celery インストール、Worker立ち上げ編
【Celery】Celery アプリ・タスクの定義編
【Celery】Celery タスクの追加とflower編
【Celery】Celery Task Status編
【Celery】Celery 結果をmysqlに格納する編
【Celery】Celery 複数サーバーでworkerを立ち上げてみる編
【Celery】Celery 感想編

【Celery】Celery 複数サーバーでworkerを立ち上げてみる編

複数サーバーでの立ち上げ

単純に同じソースコードをデプロイしておきます。

/etc/sysconfig/celerydのworker名を各サーバーで変えておきます。

各サーバーでcelerydを立ち上げflowerで確認すると、
ちゃんと2台のサーバー(worker01〜03と、04〜06)を認識しています。

そのままタスクを追加していくと、各workerに分散して処理が振り分けられます。

f:id:dnond:20130731184120p:plain

celerydを殺す

ここで、1台のサーバーのservice celeryd stopしてworkerを殺してみます。

すると、生きているworkerでタスクを処理していきます。

f:id:dnond:20130731184210p:plain

celerydを復帰させる

そして、殺したcelerydをservice celeryd startして復帰させます。

f:id:dnond:20130731184235p:plain

Completer Taskのカウンターはゼロになりますが、しばらくすると、タスクが振り分けられて行きます。

f:id:dnond:20130731184244p:plain


【Celery】Celery 要件と環境編
【Celery】Celery インストール、Worker立ち上げ編
【Celery】Celery アプリ・タスクの定義編
【Celery】Celery タスクの追加とflower編
【Celery】Celery Task Status編
【Celery】Celery 結果をmysqlに格納する編
【Celery】Celery 複数サーバーでworkerを立ち上げてみる編
【Celery】Celery 感想編